On 9/13/06, Eric Lowe <[EMAIL PROTECTED]> wrote:
I propose a virtual memory project, DMA Memory Infrastructure (DMI for
short).


Yes please. I tried to garner interest in this inside Sun years ago
but to no avail :-(

This project will provide infrastructure to:

- Allocate physical memory in contiguous [1], large page [1], or small
   page-size chunks within device address constraints
- Lock and unlock the allocated memory pages and return bus addresses as
   a scatter/gather list
- Create kmem caches for frequently constructed DMA objects

For network drivers, pre-mapped STREAMS dblk_ts would be highly useful.

- Reduce external fragmentation on x86/x64 platform for more efficient
   scatter/gather DMA
- Optionally map the memory into process address spaces and unmap it
   when required
- Optionally map the memory into kernel address space and callback to
   device drivers to unmap it when required
- Optionally reserve physical memory at boot for contiguous device
   allocation (useful for devices like shared memory frame buffers)
- Control processor cache attributes for all established mappings

This project does NOT provide leaf driver interfaces -- that is out of
scope -- it only provides the core kernel infrastructure required for
developing new high-performance DDI DMA interfaces with improved RAS.
However the interfaces should also be usable by existing driver
_frameworks_ such as GLD, SCSA, and SATA.

Initial leads will be myself and Mike Corcoran.


Some effort to mitigate IOMMU setup overheads and streaming cache
flush on sparc boxes would be well worthwhile.

 Paul

--
Paul Durrant
http://www.linkedin.com/in/pdurrant
_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to