Hi all,
A recent HLDS update is causing my machine to kernel panic.
Here is a copy of the kernel dump:
#0 sched_switch (td=0xffffffff80be7600, newtd=0xffffff00014f6720,
flags=Variable "flags" is not available.
) at /usr/src/sys/kern/sched_ule.c:1864
1864 cpuid = PCPU_GET(cpuid);
(kgdb)
(kgdb) bt
#0 sched_switch (td=0xffffffff80be7600, newtd=0xffffff00014f6720,
flags=Variable "flags" is not available.
) at /usr/src/sys/kern/sched_ule.c:1864
#1 0xffffffff805879bf in mi_switch (flags=260, newtd=0x0) at
/usr/src/sys/kern/kern_synch.c:449
#2 0xffffffff805b94a2 in sleepq_timedwait (wchan=0xffffffff80be71a0, pri=68) at
/usr/src/sys/kern/subr_sleepqueue.c:623
#3 0xffffffff80587f38 in _sleep (ident=0xffffffff80be71a0, lock=0x0,
priority=Variable "priority" is not available.
) at /usr/src/sys/kern/kern_synch.c:230
#4 0xffffffff807c7faa in scheduler (dummy=Variable "dummy" is not
available.
) at /usr/src/sys/vm/vm_glue.c:779
#5 0xffffffff8053a859 in mi_startup () at /usr/src/sys/kern/init_main.c:251
#6 0xffffffff8018a33c in btext () at /usr/src/sys/amd64/amd64/locore.S:81
#7 0x0000000000e74000 in ?? ()
#8 0x0000000000000000 in ?? ()
#9 0x0000000000000000 in ?? ()
#10 0xffffffff80c0c710 in sleepq_chains ()
#11 0xffffffff80be7600 in proc0 ()
#12 0xffffffff80e52be0 in ?? ()
#13 0xffffffff80e52b98 in ?? ()
#14 0xffffff00014f6720 in ?? ()
#15 0xffffffff805a2bd8 in sched_switch (td=0x0, newtd=0x0, flags=Variable
"flags" is not available.
) at /usr/src/sys/kern/sched_ule.c:1858
Previous frame inner to this frame (corrupt stack?)
(kgdb)
uname -a:
FreeBSD dl0009.sjc02.denetron.net 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Thu Jan 28
05:36:57 UTC 2010
root@dl0009.sjc02.denetron.net:/usr/obj/usr/src/sys/GENERIC amd64
The message displayed to the console:
? Unread portion of the kernel message buffer:
? panic: tdsignal(): invalid signal 0
? cpuid = 2
? Uptime: 6m52s
? Physical memory: 4073 MB
t_j in the ##freebsd channel on freenode asked me to do this so I'll include
it incase it's some help:
(kgdb) frame 0
#0 sched_switch (td=0xffffffff80be7600, newtd=0xffffff00014f6720,
flags=Variable "flags" is not available.
) at /usr/src/sys/kern/sched_ule.c:1864
1864 cpuid = PCPU_GET(cpuid);
(kgdb) list
1859 /*
1860 * We may return from cpu_switch on a different cpu.
However,
1861 * we always return with td_lock pointing to the current
cpu's
1862 * run queue lock.
1863 */
1864 cpuid = PCPU_GET(cpuid);
1865 tdq = TDQ_CPU(cpuid);
1866 lock_profile_obtain_lock_success(
1867 &TDQ_LOCKPTR(tdq)->lock_object, 0, 0,
__FILE__, __LINE__);
1868 #ifdef HWPMC_HOOKS
The crash is repeatable (occurs everytime for me). I also confirmed that
another FreeBSD 8 machine I have ran into the same panic (also amd64).
I'm guessing this is a bug of some kind, if there's more information I
need to provide, just let me know.
Thanks,
Daniel