On Thursday 12 August 2004 4:26 am, Olaf Hering wrote:
>  On Tue, Jun 15, David Brownell wrote:
> 
> > Richard Curnow wrote:
> > >
> > >One problem I'm hitting is in EHCI, I was wondering if you had any ideas
> > >as to what I could start looking at, annotating etc to debug this.  The
> > >problem seems to be here:
> > >
> > >static inline void list_del(struct list_head *entry)
> > >{
> > >   __list_del(entry->prev, entry->next);      <<<<<======= HERE

As you may have noticed, there aren't many calls to list_del()
that relate to QTDs.  I've not made time to investigate this
problem, but here are two issues that I'm aware of:

 - It's possible smp_mb() is needed before dropping
   ehci->lock in ehci_urb_done() ... cache coherency
   rules relating to spinlocks are unclear to me.
   (Not documented anywhere I've noticed, either.)

 - In qh_completions() at the end, there's sometimes
   a call to qh_update() after fault cleanup.  On one
   embedded platform, I've had a report about a
   race there, controller reading "old" values for
   other QH fields and then the "new" hw_token.

   Fix must involve a delay before updating the
   token, e.g. "next microframe" or maybe just
   a small udelay().

I can imagine either of these causing trouble in your
SMP testing.

- Dave


> > >   entry->next = LIST_POISON1;
> > >   entry->prev = LIST_POISON2;
> > >}
> > 
> > Hmm, I'll have to look at this some more.  Some folk have been
> > reporting list_del() problems for QTDs on SMP hardware; in fact
> > there's now a bug on this at bugme.osdl.org and you might be
> > hitting something similar.
> 
> We still see this on x86_64, with our sles9 kernel (based on 2.6.6) and
> also with 2.6.8-rc. I dont have a backtrace for the 2.6.8 kernel, yet.
> 
> Takes one or two hours to reproduce.
> 
> ...
> * How to reproduce:
> 
> perform heavy I/O load on a USB 2.0 device. I am using a USB 2.0
> harddisk and running several bonnies in a loop on it.
> ...
> 


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to