[PATCH 0/3] Small patches for f_fs.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mostly some maintainence patches. I'm happy to take feedback.

Patch 2 is useful for the mtp function, since it uses endpoint size to
figure out when to read/write a zero length packet. It would be nice to
get these values at the start of a connection and cache them for the 
duration, although it's not a must-have.


I'd also like some direction on another patch I'm planning:

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.

Allocating memory at boot allowed f_mtp the use of very large buffers,
around 250kB. Compared to using a 16 or 32 kB buffer, the larger buffer
is faster by around 50%. Functionfs can't use io sizes that large due
to memory fragmentation. One option here would be to add O_DIRECT
support. Then on each io, we could get_user_pages, vmap them together,
and pass that address into ep_queue. This would would allow any size
to be used and eliminates a copy, but would be rather involved. Does
this sound like something that people want or find acceptable? If
there's a better option, I'd be willing to help with that as well.

Jerry Zhang (3):
  usb: gadget: function: f_fs: Fix doc for FUNCTIONFS_INTERFACE_REVMAP
  usb: gadget: function: f_fs: Let ffs_epfile_ioctl wait for enable.
  usb: gadget: function: f_fs: Move epfile waitqueue to ffs_data.

 drivers/usb/gadget/function/f_fs.c  | 103 ++++++++++++++++++++----------------
 drivers/usb/gadget/function/u_fs.h  |   3 ++
 include/uapi/linux/usb/functionfs.h |   8 ++-
 3 files changed, 62 insertions(+), 52 deletions(-)

-- 
2.12.2.816.g2cccc81164-goog

--
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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux