keyboard-PS2 mouse related lockups in SMP 2.0.30 & 2.1.37

Tomasz Motylewski (motyl@ipl.net)
Wed, 21 May 1997 02:31:34 +0200 (MET DST)


-----BEGIN PGP SIGNED MESSAGE-----

BUG: pressing CapsLock or ScrollLock(tested less) while moving the PS/2 mouse
causes TOTAL FREEZE (interrupts masked) lasting _exactly_ 10 seconds.

I have tested that in 2.0.30, 2.0.pre31, 2.0.pre31+ recommended patches,
2.1.pre37-4, 2.1.37. I could not get it on non-SMP kernel.

Procedure:
1. start some background job
(for me it was enough to enter Xwin since it gets data from gpm and
redraws the cursor)
but it works also on VT when doing make -j zImage or even some less heavy
task.
2. Start moving your PS/2 mouse and keep hitting CapsLock at the same time.
Depending on system load and some other unknown factors, you will get
TOTAL FREEZE in 1 second to 2 minutes. . After that system continues
to run.
In general it is easier to get this effect under X-win.
3. It is more frequent with: "/sbin/kbdrate -s -r 30 -d 250"

During the freeze nothing works, after that the keyboard LEDs may show false
state of the lock keys. The situation is cured by pressing CapsLock and
ScrollLock a few times without moving the mouse. I was getting the following
messages in 2.0.30:

"kernel: eth0: Infinite loop in interrupt, status 2011."
coming from 3c509.c driver (it says that after circling 10 times in main
loop)

pinging my machine from other host:
64 bytes from 131.152.105.107: icmp_seq=10 ttl=253 time=0 ms
64 bytes from 131.152.105.107: icmp_seq=11 ttl=253 time=0 ms
64 bytes from 131.152.105.107: icmp_seq=12 ttl=253 time=0 ms
64 bytes from 131.152.105.107: icmp_seq=13 ttl=253 time=1 ms
64 bytes from 131.152.105.107: icmp_seq=14 ttl=253 time=9064 ms
64 bytes from 131.152.105.107: icmp_seq=15 ttl=253 time=8064 ms
64 bytes from 131.152.105.107: icmp_seq=16 ttl=253 time=7056 ms
64 bytes from 131.152.105.107: icmp_seq=17 ttl=253 time=6048 ms
64 bytes from 131.152.105.107: icmp_seq=18 ttl=253 time=5040 ms
64 bytes from 131.152.105.107: icmp_seq=19 ttl=253 time=4033 ms
64 bytes from 131.152.105.107: icmp_seq=23 ttl=253 time=0 ms
64 bytes from 131.152.105.107: icmp_seq=24 ttl=253 time=0 ms
64 bytes from 131.152.105.107: icmp_seq=25 ttl=253 time=1 ms

Final 2.1.37 shows just the same "Infinite loop in interrupt" messages, but
output from 2.1pre37-4 is more interesting:

(This in Xwindows)
May 20 23:40:08 crds kernel: wait_on_irq CPU#0 stuck at 00000000, waiting for
c70fbfb8 (local=0, global=1)
May 20 23:40:08 crds kernel: eth0: Infinite loop in interrupt, status 2011.
May 20 23:50:08 crds kernel: wait_on_irq CPU#0 stuck at 082ee000, waiting for
c70fbfb8 (local=0, global=1)
May 20 23:50:08 crds kernel: eth0: Infinite loop in interrupt, status 2011.
May 20 23:50:08 crds kernel: eth0: Infinite loop in interrupt, status 2011.
May 20 23:51:36 crds kernel: wait_on_irq CPU#0 stuck at 00000000, waiting for
c70fbfb8 (local=0, global=1)
May 20 23:51:36 crds kernel: eth0: Infinite loop in interrupt, status 2011.

This is from make -j zImage:
May 20 23:51:43 crds kernel: ar: Exception at [<c012f503>] (c01dad2a)

Now I try the same on VT:
May 20 23:55:08 crds kernel: wait_on_irq CPU#0 stuck at 082b0000, waiting for
c673d8a0 (local=0, global=1)
May 21 00:05:57 crds kernel: wait_on_irq CPU#0 stuck at 0827f000, waiting for
c69f39e0 (local=0, global=1)
May 21 00:05:57 crds kernel: eth0: Infinite loop in interrupt, status 2011.
May 21 00:05:57 crds kernel: eth0: Infinite loop in interrupt, status 2011.
May 21 00:07:49 crds kernel: wait_on_irq CPU#0 stuck at 08058000, waiting for
c8815620 (local=0, global=1)
May 21 00:07:49 crds kernel: eth0: Infinite loop in interrupt, status 2011.
May 21 00:07:49 crds kernel: eth0: Infinite loop in interrupt, status 2011.

This is dual Pentium 200 , 128MB RAM, aic7xxx: AIC-7880 Ultra Rev B.
SCSI, more info on
http://131.152.105.107/machine/
I am using PS/2 type keyboard (German)
I was using binutils 2.7.0.2, but after recompiling with 2.8.0.3 the effect
is the same.

None of the addresses "waited for" is in the "System.map".

c012f4e0 T lookup
c012f5d4 T follow_link

c01da19c T sprintf
c01dbbf4 t common_fixup

I hope that info will be helpfull. I would be glad to supply also the other
details.

- --
Tomasz Motylewski

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3i
Charset: noconv

iQCVAwUBM4JCHEk05k466f3dAQG5ewP9EWELoxmUjAoFndIDB0tLTDKjCGGtw1jx
sUkSxXJQ7SvJXmm6eCLvzcZTlZoKzQKSFaVWrja1x/MPxN+1l3fpKyUuFxMR5U2J
aI3tsKQYn6/cw6qhjDHOoX2XMAdOmK8sVlfXB92FELPXGGMHr53mDPPDRXg0isPN
LQDHvUJ6//Q=
=elti
-----END PGP SIGNATURE-----