[illumos-Developer] Webrev #534: DMA KVA cache attributes incorrect

Michael Tsymbalyuk mtzaurus at gmail.com
Tue May 10 08:31:35 PDT 2011


I see.

Probably whe shoud override cache attributes only in case of
non-zero devacc_attr_dataorder.

Sincerely,
Michael Tsymbalyuk

> First obvious problem is that this always clears the documented cache
> flags for ddi_dma_mem_alloc(9) and only uses the attributes in
> ddi_device_acc_attr->devacc_attr_dataorder.
> 
> The cache attributes there are explicitly "advisory, not mandatory".
> 
> On Tue, May 10, 2011 at 11:05 AM, Michael Tsymbalyuk <mtzaurus at gmail.com> wrote:
> >  For test purposes I added a code snipped to the vmxnet3.c
> > driver (for my local testing purposes, of course) - since
> > we need a real device for dealing with DMA memory allocation.
> > Inside device's attach() logic it allocates 3 DMA areas with different
> > attributes:
> >
> >   "DDI_STRICTIRDER_ACC",
> >   "DDI_MERGING_OK_ACC",
> >   "DDI_UNORDERED_OK_ACC"
> >
> >  and prints out their addresses.
> >
> > Next, I run mdb -k and walk through these addresses using ::vatopfn
> > and ::pte commands.
> >
> > It shows that areas have the following attributes:
> >
> >    DDI_STRICTIRDER_ACC : uncached
> >    DDI_MERGING_OK_ACC  : wrcombine
> >    DDI_UNORDERED_OK_ACC : <no caching attributes>
> >
> > Sincerely,
> > Michael Tsymbalyuk
> >
> >> On Tue, 2011-05-10 at 18:08 +0400, Michael Tsymbalyuk wrote:
> >> > Thiw webrev fixes the problem of improper handling of page table
> >> > attributes related to caching while allocating a DMA-compatible
> >> > memory via ddi_dma_mem_alloc(). The patch adds extra attribute check
> >> > to ddi_dma_mem_alloc().
> >> >
> >> > http://cr.illumos.org/view/asjt99s5/illumos-534-webrev/
> >> >
> >> > Sincerely,
> >> > Michael Tsymbalyuk
> >> >
> >>
> >> This looks good if it is that simple.  I want to do some deeper analysis
> >> to review your code.  Out of curiosity, did you test this at all?  If
> >> so, how?
> >>
> >>       - Garrett
> >> >
> >> > _______________________________________________
> >> > Developer mailing list
> >> > Developer at lists.illumos.org
> >> > http://lists.illumos.org/m/listinfo/developer
> >>
> >>
> >
> >
> >
> > _______________________________________________
> > Developer mailing list
> > Developer at lists.illumos.org
> > http://lists.illumos.org/m/listinfo/developer
> >





More information about the Developer mailing list