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