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

Michael Tsymbalyuk mtzaurus at gmail.com
Tue May 10 08:05:53 PDT 2011


  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
> 
> 





More information about the Developer mailing list