RE: L68K: Re: IDE-Driver Update :: Testing Requested

Geert Uytterhoeven (Geert.Uytterhoeven@cs.kuleuven.ac.be)
Tue, 25 Aug 1998 20:51:06 +0200 (CEST)


On Tue, 25 Aug 1998, Michael Schmitz wrote:
> >> >[ Moving the discussion to linux-kernel.
> >>
> >> Forgot to CC: there.
> >
> >Deliberately?
>
> Nah - just hit return too fast on the cc: line (I have to fill cc: manually each
> time).

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