Date: Tue, 19 May 2009 14:58:50 -0400 From: John Baldwin <jhb@freebsd.org> To: arch@FreeBSD.org Subject: sglist(9) Message-ID: <200905191458.50764.jhb@freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905191458.50764.jhb>