Max. libusb bulk send/receive values lowered with xhci?

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

 



Hi Sarah,


I was happily using big (10MB) buffers before, and with recent kernels,
when using USB3, I had to reduce the size of my buffers a lot.
By the way, I couldn't find any information on a maximum size for the
bulk transfers using libusb, maybe you know about that also ?

So, using v3.13, this what I get from the kernel when doing a bulk read
of 4 MiB:

[  506.856282] xhci_hcd 0000:00:14.0: Too many fragments 256, max 63
[  506.856288] usb 4-5: usbfs: usb_submit_urb returned -12
[  506.960977] xhci_hcd 0000:00:14.0: Too many fragments 256, max 63
[  506.960983] usb 4-5: usbfs: usb_submit_urb returned -12
[  528.142778] xhci_hcd 0000:00:14.0: Too many fragments 256, max 63
[  528.142783] usb 4-5: usbfs: usb_submit_urb returned -12

When reduced to 1 MiB:

[  582.881795] xhci_hcd 0000:00:14.0: Too many fragments 64, max 63
[  582.881800] usb 4-5: usbfs: usb_submit_urb returned -12
[  582.986455] xhci_hcd 0000:00:14.0: Too many fragments 64, max 63
[  582.986459] usb 4-5: usbfs: usb_submit_urb returned -12


I saw your 3.12-td-fragment-failure branch and tried it; there,
sometimes the transfers don't work, with:

xhci_hcd 0000:00:14.0: WARN Event TRB for slot 10 ep 4 with no TDs queued?
python2: page allocation failure: order:10, mode:0x1040d0
CPU: 0 PID: 23617 Comm: python2 Not tainted 3.12.6-Niwatori-00004-gd085fb5 #4
Hardware name: ASUS All Series/Z87-K, BIOS 0801 09/02/2013
 00000000001040d0 ffff880125d7daa8 ffffffff816c4d58 ffff88021fa0ed58
 0000000000000001 ffff880125d7db38 ffffffff810d1bc5 ffffffff00000000
 0000000000000000 ffff880125d7dad8 ffff88021fdd6800 ffff88021fdd6838
Call Trace:
 [<ffffffff816c4d58>] dump_stack+0x4f/0x84
 [<ffffffff810d1bc5>] warn_alloc_failed+0x110/0x139
 [<ffffffff810d44d1>] __alloc_pages_nodemask+0x1d8/0x782
 [<ffffffff81103d89>] alloc_pages_current+0xc0/0xdd
 [<ffffffff810d0e5b>] __get_free_pages+0x9/0x36
 [<ffffffff810e74d8>] kmalloc_order_trace+0x29/0xbf
 [<ffffffff81109dec>] __kmalloc+0x32/0x14f
 [<ffffffff81540524>] proc_do_submiturb+0x527/0xa87
 [<ffffffff810eb8b7>] ? tlb_finish_mmu+0x1f/0x34
 [<ffffffff8154162e>] usbdev_do_ioctl+0x86a/0xd81
 [<ffffffff816cb57b>] ? _raw_spin_unlock_irqrestore+0x29/0x34
 [<ffffffff81541b5d>] usbdev_ioctl+0x9/0xd
 [<ffffffff81120f05>] vfs_ioctl+0x21/0x34
 [<ffffffff8112175e>] do_vfs_ioctl+0x3b8/0x3fb
 [<ffffffff81129249>] ? fget_light+0x8d/0x99
 [<ffffffff811217f3>] SyS_ioctl+0x52/0x7f
 [<ffffffff816d0f62>] system_call_fastpath+0x16/0x1b


Thanks for your input,


-- 
Jérôme
--
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