Re: [Libusb-devel] libusb losing data on timeout/cancellation

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

 



On Wed, 24 Jun 2009, David Vrabel wrote:

> We have a plan to allow larger buffers by using a scatter-gather list
> for the transfer.  Each user-space page mapped into kernel space will be
> a separate sg list element.

We already can transfer large buffers using sg.  The difference is that
it requires multiple URBs, whereas your plan requires only one.

>  This should allow zero-copy with no
> alignment restrictions.

No, there _would_ be alignment restrictions when using UHCI (although
not OHCI or EHCI).

> You would need to add support for urbs with scatter-gather lists to
> ehci-hcd.

Rephrase this: To use your plan with ehci-hcd would require adding
support for sg lists to ehci-hcd.  Similarly for each host controller 
driver.

>  This may be tricky.  whci-hcd, for example, required the use
> of bounce buffers for certain sg lists whose elements were neither
> multiples of a page nor multiples of wMaxPacketSize.  However, such sg
> lists are not common and would not occur with transfers from usbfs.

What if the user's buffer starts at offset 4 within a page?  Then the 
length of the first sg element would be PAGE_SIZE - 4, so a bounce 
buffer would be required after all.  Even with usbfs.

That's the sort of thing I meant when talking about alignment 
restrictions.

Alan Stern

--
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