linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* usb raw gadget impossible to sent buffer bigger than 3MB
@ 2020-05-28  6:19 Belisko Marek
  2020-05-28  9:06 ` Felipe Balbi
  2020-05-28 11:17 ` Peter Chen
  0 siblings, 2 replies; 7+ messages in thread
From: Belisko Marek @ 2020-05-28  6:19 UTC (permalink / raw)
  To: Linux USB Mailing List

Hi,

we're using USB RAW gadget for communicating with PC application. We
have created loopback test which send file (any size) from PC to
device and then same data are sent back to PC to verify roundtrip time
(using bulk data transfer). Everything works fine up to 3MB file size.
If we sent bigger file like e.g. 5M we can receive file on device but
when we want to write to output endpoint we got:

WARNING: CPU: 0 PID: 12299 at /kernel-source//mm/page_alloc.c:3725
__alloc_pages_nodemask+0x1b0/0xde4
[<c010fa08>] (unwind_backtrace) from [<c010c45c>] (show_stack+0x20/0x24)
[<c010c45c>] (show_stack) from [<c04cc0d4>] (dump_stack+0x20/0x28)
[<c04cc0d4>] (dump_stack) from [<c01324ac>] (__warn+0xec/0x108)
[<c01324ac>] (__warn) from [<c0132598>] (warn_slowpath_null+0x30/0x38)
[<c0132598>] (warn_slowpath_null) from [<c021ccb8>]
(__alloc_pages_nodemask+0x1b0/0xde4)
[<c021ccb8>] (__alloc_pages_nodemask) from [<c023b888>]
(kmalloc_order+0x2c/0x48)
[<c023b888>] (kmalloc_order) from [<c023b8d0>] (kmalloc_order_trace+0x2c/0xd4)
[<c023b8d0>] (kmalloc_order_trace) from [<c0261c24>] (__kmalloc+0x40/0x264)
[<c0261c24>] (__kmalloc) from [<bf039bc4>] (ffs_epfile_io+0x13c/0x570
[usb_f_fs])
[<bf039bc4>] (ffs_epfile_io [usb_f_fs]) from [<bf03a0c0>]
(ffs_epfile_write_iter+0xc8/0x120 [usb_f_fs])
[<bf03a0c0>] (ffs_epfile_write_iter [usb_f_fs]) from [<c02734bc>]
(new_sync_write+0xc8/0xec)
[<c02734bc>] (new_sync_write) from [<c027351c>] (__vfs_write+0x3c/0x48)
[<c027351c>] (__vfs_write) from [<c02749a0>] (vfs_write+0xcc/0x158)
[<c02749a0>] (vfs_write) from [<c02756ac>] (SyS_write+0x50/0x88)
[<c02756ac>] (SyS_write) from [<c0107a20>] (ret_fast_syscall+0x0/0x54)
---[ end trace fe5f79fe415b9881 ]---

and write ends up with: write /run/ffs/ep1: cannot allocate memory

When checked free command there should be plenty of available memory.
Is there some limitation when writing to endpoint? We tried to split
buffer to e.g. 3M and sent it and this works but looks like there is
penalty when sending bigger files (100MB file received in 5secs whicle
sending back it took 2minutes). Thanks for ideas and hints.

BR,

marek

-- 
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-07-01  6:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-28  6:19 usb raw gadget impossible to sent buffer bigger than 3MB Belisko Marek
2020-05-28  9:06 ` Felipe Balbi
2020-05-28  9:10   ` Belisko Marek
2020-05-29  6:27     ` Felipe Balbi
2020-05-29  7:31       ` Belisko Marek
2020-07-01  6:57         ` Felipe Balbi
2020-05-28 11:17 ` Peter Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).