On Tue, Apr 23, 2024 at 02:10:13PM -0700, Guenter Roeck wrote:
> Hi Alan,
>
> On 4/23/24 10:30, Alan Stern wrote:
> > On Tue, Apr 23, 2024 at 10:04:17AM -0700, Guenter Roeck wrote:
> > > Hi,
> > >
> > > when testing usb-ohci
> >
> > What
gt;
> Question is: What is actually wrong ? Something in the generic interrupt
> handling code in Linux, something in the Linux usb-ohci driver, or
> something in qemu ? Any idea how a proper fix might look like ?
To answer these questions we need more information.
Alan Stern
ext page into a bounce buffer, and send a 512-byte URB for that
buffer. Then qemu would send a 3584-byte URB starting at offset 480 in
the second page, and so on.
Of course, this can be optimized in the case where the pages happen to
be adjacent in the host's memory. It's okay to let an URB span a page
boundary. But if the pages aren't adjacent, you will have to use a
bounce buffer.
By the way, this approach has to be used for control and interrupt
transfers as well as bulk transfers. If a guest's qTD has be to split
up, all the pieces except the last must be a multiple of the
wMaxPacketSize value.
Alan Stern
000
This is a lot more concise than the other log, but it still shows the
same problem: the 4064-byte URB.
Can you post the contents of the /sys/kernel/debug/usb/devices file?
Alan Stern