sglist(9)
John Baldwin
jhb at freebsd.org
Tue May 19 18:59:01 UTC 2009
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
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
http://www.FreeBSD.org/~jhb/pat/
This particular patch to just add the sglist(9) API is at
http://www.FreeBSD.org/~jhb/patches/sglist.patch and is slightly more
polished in that it includes a manpage. :)
--
John Baldwin
More information about the freebsd-arch
mailing list