All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Chen <peter.chen@nxp.com>
To: Belisko Marek <marek.belisko@gmail.com>
Cc: Linux USB Mailing List <linux-usb@vger.kernel.org>
Subject: Re: usb raw gadget impossible to sent buffer bigger than 3MB
Date: Thu, 28 May 2020 11:17:39 +0000	[thread overview]
Message-ID: <20200528111803.GA2604@b29397-desktop> (raw)
In-Reply-To: <CAAfyv37cFWsvoprz2jZ=jkdiTqxjPSYr_c6w5YYiaKWUe_-V1A@mail.gmail.com>

On 20-05-28 08:19:46, Belisko Marek wrote:
> 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.
> 

Although you see there are plenty of available memory, but the block number
for the size(eg 64KB) you request may be zero. Since you use old
kernel, the f_fs doesn't support scatter list. To fix it, you may use
small buffer at use space, eg: 16KB per transfer.

-- 

Thanks,
Peter Chen

      parent reply	other threads:[~2020-05-28 11:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200528111803.GA2604@b29397-desktop \
    --to=peter.chen@nxp.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=marek.belisko@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.