Memory management with the TTM
- the user space DRI asks the DRM to lock/unlock an object (piece of memory). the DRM keeps a list of objects, and knows which pieces are locked and by which client
- how to achieve fence-like functionality (3 possible solutions) :
- we trigger a DMA_PT by going outside of our fifo, and use it as a counter of fifo loops
- we stick a command that increments a counter at the end of the fifo
- we stick a command that writes a value in AGP/VRAM at each point where we want to achieve fence-like functionality
- do we use dynamic remapping, or is the object system (with the page list) flexible enough that we can do everything through it (and AGP becomes instantly useless) ?
Reading:
- dri-devel mailing list
http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg26140.html DRM Translation Table Map interface, 25 Jan 2006
- linux kernel mailing list
http://lkml.org/lkml/2007/4/26/74 [RFC] [PATCH] DRM TTM Memory Manager patch, 26 Apr 2007
- #dri-devel channel logs
http://dri.egore911.de/index.php?page=dri-devel-2007-07-26.log about Nouveau and TTM
- the TTM code in the DRM and Mesa driver for i915tex
- airlied's radeon repo has kernel side code for radeon
- there is the via driver