Colin Fletcher wrote:
ua-1000-ehci-oldsched.log is the result with
CONFIG_USB_EHCI_TT_NEWSCHED
not set: the URBs still complete out-of-order.
Out of curiousity, because I have a dual-core CPU, I also tried booting
the CONFIG_USB_EHCI_TT_NEWSCHED=y kernel with maxcpus=0
(ua-1000-ehci-newsched-maxcpus-0.log) and maxcpus=1
(ua-1000-ehci-newsched-maxcpus-1.log), to see what would happen.
Curiously, maxcpus=0 shows the URBs completing in order, except that
submitting URB 20 is delayed until after 0-19 have completed. maxcpus=1
has the URBs out-of-order. I don't know what to conclude from this;
maybe it makes some sense to you?
With maxcpus=0, several URBs are completed out of order after timestamp
203.58, and they should not complete at that time but ten milliseconds
later.
As far as I can see, none of these changes make much of a difference.
(The TT scheduler should affect only low or full speed transfers.)
Is there anything else you'd like me to try?
Please change line 376 to
printk(KERN_DEBUG "completed URB %d, status: %d, bytes: %u\n", err,
urb->status, urb->iso_frame_desc[0].actual_length);
and show the logs for both maxcpus=1 and multiple cores.
Can you try this on any other computer?
Or anything else you might need to know about my
system?
Is this really an unpatched
kernel.org kernel?
What USB controller do you have (see lspci)?
Is there a more appropriate list for this, or are we
still on-topic for LAU?
I'm not sure if this is a problem with the EHCI driver or your USB
controller, but both would be appropriate for the linux-usb list.
Regards,
Clemens