Christoph: Can you help answer some questions about implementing zerocopy I/O? We would like to add zerocopy support for USB devices. Basically this means: Allocating memory pages that match the device's DMA mask, for use as I/O buffers, and locking them so their physical addresses don't change (and they don't get paged out); Mapping those pages into a user process; Constructing scatter-gather lists to describe the I/O if the pages aren't contiguous. I don't have much experience in this area. Can you point to good examples where these things are done or documents describing what is involved? For example, are the allocating and mapping steps normally done separately or are they normally combined in an mmap(2) system call? A proposed patch has been posted (http://marc.info/?l=linux-usb&m=144763502829452&w=2), but I'm not convinced that it is the best approach. For instance, it always tries to get contiguous pages and so is vulnerable to memory fragmentation. Thanks, Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html