2007-05-25 10:23 Summary of Tasks:
# Task: implement pmap_mapdev_attr() on FreeBSD i386 and on
FreeBSD amd64.
Motivation: allows reliable creation of kernel mappings of I/O
memory with specific cache attributes (with per-page
granularity).
Priority: gates FreeBSD amd64 support.
Status: is being implemented for i386 and amd64 (work is being
done to allow easily breaking down 2MB pages).
# Task: design/implement better mmap(2) mechanism for mapping
memory to user space (context information, cache
attributes).
Motivation: allows reliable creation of user mappings of DMA and
I/O memory and support for systems with more than
4GB of RAM.
Priority: gates improved FreeBSD i386 support (PCI-E performance,
SLI support, improved reliability); gates FreeBSD
amd64 support.
Status: has not been started, pending.
# Task: implement pmap_change_attr() on FreeBSD i386 and on
FreeBSD amd64.
Motivation: allows prevention of cache coherency problems.
Priority: gates FreeBSD amd64 support.
Status: is being implemented for i386 and amd64.
# Task: implement vmap()-like kernel interface.
Motivation: allows creation of contiguous kernel mappings of
parts of or complete non-contiguous DMA/system memory
allocations.
Priority: gates support for systems with more than 4GB of RAM.
Status: has not been started.
# Task: implement mechanism to allow character drivers to
maintain per-open instance data (e.g. like the Linux
kernel's 'struct file *').
Motivation: allows per thread NVIDIA notification delivery; also
reduces CPU overhead for notification delivery
from the NVIDIA kernel module to the X driver and to
OpenGL.
Priority: should translate to improved X/OpenGL performance.
Status: has not been started.