Skip site navigation (1)Skip section navigation (2)
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>