On Mon, 2006-09-18 at 16:46 +0200, Thomas Hellström wrote:

> Unfortunately this leads to rather costly cache and TLB flushes.
> Particularly on SMP.
> 
> I think Keith was referring to the drawbacks with buffers pinned in
> AGP or VRAM space.

What about a futex-like approach:

A shared are mapped by both kernel and user has locks for the buffers.
When submitting a command involving a buffer, userland tries to lock it.
This is a simple atomic operation in user space. If that fails (the lock
for that buffer is held, possibly by the kernel, or the buffer is
swapped out), them it does an ioctl to the DRM to get access (which
involves sleeping until the buffer can be retreived).

One the operation is complete, the apps can release the locks to buffers
it holds. In fact, if there is a mapping to buffers <-> objects for
cards like nVidia with objects and notifiers, the kernel could
auto-unlock objects when the completion interrupt for them occurs.

Ben.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to