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]
