Coupling U-Net with Virtual Memory Management --------------------------------------------- Anindya Basu, Matt Welsh and Thorsten von Eicken Department of Computer Science Cornell University U-Net offers applications user-level access to the network such that the network interface's DMA engine can transfer packet data directly to and from application memory without compromising protection boundaries. Currently, U-Net as well as similar approaches require the memory regions used for communication to be pinned to physical memory in order to prevent the memory manager from swapping out pages that are used in DMA transfers. This approach is inflexible in that it requires data to be moved into and out of this pinned "DMA window" for send and receive, and requires a considerable amount of non-pageable memory per application using the network. An new extension to the U-Net architecture (U-Net/MM) couples the operation of the DMA engine with memory management to allow data to be transferred directly to and from any region in an application's address space, thus supporting true zero-copy messaging. The appropriate virtual-to-physical mappings for DMA transfers are managed automatically to provide scalability in the number of processes which can share the network interface. U-Net/MM introduces a translation lookaside buffer (TLB) into the network interface to translate virtual buffer addresses provided by the applications to physical addresses used by the DMA engine. A new kernel module communicates with the network interface to coordinate memory management actions and, in particular, to provide page-translations to the network interface when the TLB misses. The U-Net/MM architecture itself is independent of any specific hardware platform — each of the components can be implemented in hardware as well as software. The U-Net/MM architecture has been implemented using the FORE Systems PCA-200 PCI ATM network interface and Pentium workstations running the Linux operating system. Preliminary results show performance comparable to that of the original U-Net system with low overhead for TLB mappings and good conservation of system memory under various job loads. Additional information on the U-Net project can be obtained from http://www.cs.cornell.edu/Info/Projects/U-Net/.