Julian Elischer julian at
Tue May 19 20:45:57 UTC 2009

John Baldwin wrote:
> So one of the things I worked on while hacking away at unmapped disk I/O 
> requests was a little API to manage scatter/gather lists of phyiscal 
> addresses.  The basic premise is that a sglist describes a logical object 

I was JUST looking at this because of some Linux code I was looking
at, that uses a predefined sg list that I think it is getting from
Linux. (you may look to se what the Linux sg list code does/has).

> that is backed by one or more physical address ranges.  To minimize locking, 
> the sglist objects themselves are immutable once they are shared.  The 
> unmapped disk I/O project is still very much a WIP (and I'm not even working 
> on any of the really hard bits myself).  However, I actually found this 
> object to be useful for something else I have been working on: the mmap() 
> extensions for the Nvidia amd64 driver.  For the Nvidia patches I have 
> created a new type of VM object that is very similar to OBJT_DEVICE objects 
> except that it uses a sglist to determine the physical pages backing the 
> object instead of calling the d_mmap() method for each page.  Anyway, adding 
> this little API is just the first in a series of patches needed for the 
> Nvidia driver work.  I plan to MFC them to 7.x relatively soon in the hopes 
> that we can soon have a supported Nvidia driver on amd64 on 7.x.
> The current patches for all the Nvidia stuff is at 
> This particular patch to just add the sglist(9) API is at 
> and is slightly more 
> polished in that it includes a manpage. :)

More information about the freebsd-arch mailing list