mutex still spinning while in DDB on UP machine

From: Kris Kennaway <kris_at_obsecurity.org>
Date: Thu, 9 Jun 2005 14:38:35 -0400
I've seen the following a couple of times recently on UP machines
running up-to-date current (the panic may not be important, I'm
referring to the behaviour of DDB):

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x0
fault code              = supervisor write, page not present
instruction pointer     = 0x20:0xc054cc77
stack pointer           = 0x28:0xd4222c9c
frame pointer           = 0x28:0xd4222cb4
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 37 (vnlru)
[thread pid 37 tid 100035 ]
Stopped at      vnlru_free+0x87:        movl    %eax,0(%edx)
db> stray irq7
stray irq7
stray irq7
stray irq7
too many stray irq 7's: not logging anymore

At this point, the keyboard only works sporadically (i.e. I have to
press keys multiple times for DDB to receive the input).

show ktr shows a buffer full of:

530: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
529: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:265
528: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
527: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:265
526: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
525: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:265
524: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
523: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:265
522: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
521: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:265
520: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
519: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:265
518: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:277
517: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:275
516: UNLOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:427
515: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:275
514: UNLOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:427
513: LOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:422
512: UNLOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:427
511: LOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:422
510: UNLOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:427
509: LOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:422
508: UNLOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:427
507: LOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:422
506: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
505: LOCK (spin mutex) clk r = 0 at ../../../i386/isa/clock.c:422
504: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
503: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:265
502: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
501: LOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:265
500: UNLOCK (spin mutex) icu r = 0 at ../../../i386/isa/atpic.c:267
[...]

and repeated show ktr indicates that it is still logging events
(i.e. the head of the buffer is now in a different place).  This
suggests that the mutex is still spinning even though the system is in
DDB.

Kris

Received on Thu Jun 09 2005 - 16:38:37 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:36 UTC