(reposting this question in its own subject, instead of buried in a patchset) Android has migrated to using f_fs for the mtp function, but in the process we ran into some performance hiccups in comparison to f_mtp during bulk transfer of large files. Allocating memory at boot allowed f_mtp to use large buffers, around 250kB. Compared to using a 16 or 32 kB buffer, the larger buffer is faster by almost 50%. f_fs can't use io sizes that large due to memory fragmentation, since there is a kmalloc on each call. One option here would be to add O_DIRECT as a flag to open (similar to what is discussed here: http://www.makelinux.net/ldd3/chp-15-sect-3). Then on each io, we could get_user_pages, vmap them together, and pass that address into ep_queue (for sync io only, non direct io does not change). This would would allow larger io sizes to be used and eliminates a user-kernel copy. Having the flag allows users to decide which endpoints they choose to use this way. Does this sound like something that people want or find acceptable? If there's other suggestions for fixing this issue, I'd be willing to help implement. --Jerry -- 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