Thank you very much for working on this, Stefan. Alan Stern wrote: > Also, many host controllers cannot handle arbitrary alignment. > It would be best to require that the buffer start at a page boundary. This requires a bit of negotiation with userspace, maybe per-URB but it seems better to negotiate per-claim or even per-open. What about large control transfers? > Using a global module parameter to control the use of zerocopy (for > anything other than debugging or testing) is a bad idea. I agree. > If you think people will have a reason for avoiding zerocopy then > you should make it possible to decide for each URB, by adding a new > flag to struct usbdevfs_urb. People might want to use zerocopy always, but have buffers in userspace which make that impossible with the given hardware. It's important that the kernel gives userspace enough information about the constraints, if userspace wants zerocopy. > People will want to use zerocopy with isochronous transfers as well as > bulk. Implementing that isn't going to be quite so easy; it will be > necessary for the user to set up a memory mapping. In fact, once > that's done the same mechanism could be used for bulk transfers too. Indeed I think userspace wants to be involved in choosing memory also with bulk, in order to ensure that zerocopy will always work when userspace cares about that. Is it enough to expose the DMA mask of the host controller? //Peter -- 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