Re: another must-fix: major PS/2 mouse problem

Andrew Morton
2003-07-24T17:27:47Z

Albert Cahalan <albert@users.sourceforge.net> wrote:
>
> Using the lockmeter on a 2.5.75 kernel, I discovered
> that boomerang_interrupt() grabs a spinlock for over
> 1/4 second. No joke, 253 ms. Interrupts are off AFAIK.

boomerang_interrupt() doesn't disable interrupts. Is the NIC sharing the
mouse's IRQ line?

boomerang_interrupt() is only used by nasty old NICs and yes, I guess it is
possible that something has gone wrong and is causing occasional long spins
in there.

But I am more suspecting that you're not really using boomerang_interrupt()
at all, and that something has gone wrong with lockmeter. What sort of NIC
are you using?

Bear in mind that if some other device generates an interrupt while the CPU
is running boomerang_interrupt(), lockmeter will count the time spent in
that other device's interrupt as "time spent in boomerand_interrupt()".
Which is very true, but it is not much help when one is trying to identify
the source of the problem.

Perhaps what you should do is to do an rdtsc on entry and exit of do_IRQ()
and print stuff out when "long" periods of time in do_IRQ() are noticed.