Ticket #137 (closed enhancement: fixed)
take advantage of new kernel support for large transfers
|Reported by:||parafin||Owned by:|
|Milestone:||1.0.16||Component:||libusb-1.0 Linux backend|
Currently if bulk transfer larger than 16 KB is submitted, it's splitted into several URBs not larger than 16KB. Comments in code suggest, that Linux can't handle larger buffers, which is incorrect (at least now, maybe it was true in the past). I've changed MAX_BULK_BUFFER_LENGTH from 16384 to 1048576 (1 MB) and nothing broke (see attached patch). Actually it solved problems I've been having with USB3. Splitting big transfers increase interrupt and memory load and it seams that xhci kernel driver doesn't handle this situation well which ends in data corruption.
Same issue probably applies to isochronous transfers.
Changed 11 months ago by parafin
comment:1 follow-up: ↓ 2 Changed 11 months ago by stuge
- Summary changed from transfers are being splitted to small URBs for no reason to take advantage of new kernel support for large transfers
- Type changed from defect to enhancement