Have you already fwd'd the missing messages? Or should I do that.
> >> >Add more debugging code, to remember when the last request was posted. I don't
> >> >have the log here (forgot to save it after reboot[*]), but here are the facts:
> >> >
> >> > - at jiffies = 18779, set_handler() calls add_timer() with an expiration
> >> > time of 19779 (i.e. jiffies+10*HZ)
> >> > - ide_timer_expiry() is called at jiffies = 18779 (i.e. immediately), while
> >> > hwgroup->timer.expires still contains 19779 (i.e. future)
> >> >
> >> >So ide_timer_expiry() is called before the timer expires.
>
> Can you add code to ide_timer_expiry to check for that case, and just restart the
> timeout? Just to make sure this would fix the IDE behaviour and to get more stats
> on the problem (how often, making sure it's not a jiffy overflow thing though that
> didn't seem likely, check that IDE doesn't hang later for another reason, does it
> only happen when copying a -> b?).
It's not that trivial, since I think the timer stuff is completely messed up,
cfr. the irq timout/ide reset message storm.
I added a test for jiffies < hwgroup->timer.expires at the top of
ide_timer_expiry(). If positive, I do printk and just leave the function,
hoping that things will go on correctly. Unfortunately they don't. Sometimes it
gets stuck on the first case, in other cases it dumps a lot of messages and
hangs.
Anyway, it's clear that timer functions are called before they have expired.
I'll dive into the timer code.
Greetings,
Geert
-- Geert Uytterhoeven Geert.Uytterhoeven@cs.kuleuven.ac.be Wavelets, Linux/{m68k~Amiga,PPC~CHRP} http://www.cs.kuleuven.ac.be/~geert/ Department of Computer Science -- Katholieke Universiteit Leuven -- Belgium
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html