[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-users] Question on pseudo-physical memory



>
> > Does this mean that a Domain0 Linux kernel driver which allocated
> > kernel memory with kmalloc() or __get_free_pages() may not receive
> > memory that is physically contiguous in the underlying real memory?
>
> Yep.
 
Is there, therefore, any way to guarantee that a kmalloc'ed (or similar) area is physically contiguous in machine memory? For example, if I need 8K (two pages) of physically continuous machine memory, how does a kernel device driver allocate this memory.
  
> > I ask because this could cause an issue for a device driver that
> > must build scatter/gather lists for an external device.  If this is
> > true, is there documentation available on what's required to build a
> > valid scatter/gather list which contains real physically contiguous
> > segments?
>
> If your driver is using the DMA API properly as it should, this should
> "just work", since the XenLinux DMA API implementations do the right
> thing (e.g., using swiotlb for bouncing buffer which are not contigous
> in machine memory).
 
Which "DMA API" are you referring to?  I am writing a SCSI device driver which accepts a scatter-gather list from the SCSI midlayer uses the kernel dma_map_sg() service to map to (what the kernel believes are) real addresses.  Under Xen, are these (pseudo-)physical addresses or machine addresses?  My belief is that they are the former and may need another layer of translation to generate the real (machine) addresses.
 
Thanks for the help - Martin
 


With MSN Spaces email straight to your blog. Upload jokes, photos and more. It's free! It's free!
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.