new panic in cpu_reset() with WITNESS

Gleb Smirnoff glebius at
Mon Jan 23 16:26:08 UTC 2012

On Mon, Jan 23, 2012 at 08:24:10PM +0400, Gleb Smirnoff wrote:
T> On Mon, Jan 23, 2012 at 04:01:20PM +0200, Andriy Gapon wrote:
T> A> > A> Can you try to change printfs in witness to db_printfs?  Perhaps this will allow
T> A> > A> to get the details of the LOR in uart_cnputc.  Maybe that will reveal some
T> A> > A> important additional details.
T> A> > 
T> A> > Should I do s/printf/db_printf/ throughout entire subr_witness.c, or only
T> A> > in special places?
T> A> 
T> A> I think that "replace all" should work for this test.
T> Yes, s/	printf/	db_printf/ in subr_witness.c fixes my problem.

Sorry. I was testing wrong kernel. The substitute doesn't help. Panic
trace is almost the same:

db> bt
Tracing pid 1 tid 100001 td 0xfffffe0001d5e000
kdb_enter() at kdb_enter+0x3b
panic() at panic+0x1c7
_mtx_lock_spin_flags() at _mtx_lock_spin_flags+0x10f
cnputs() at cnputs+0x7a
vprintf() at vprintf+0xcb
printf() at printf+0x67
db_putc() at db_putc+0x81
kvprintf() at kvprintf+0x83
db_printf() at db_printf+0x86
witness_checkorder() at witness_checkorder+0x773
_mtx_lock_spin_flags() at _mtx_lock_spin_flags+0x99
uart_cnputc() at uart_cnputc+0x3e
cnputc() at cnputc+0x4c
cnputs() at cnputs+0x26
putchar() at putchar+0x11f
kvprintf() at kvprintf+0x83
vprintf() at vprintf+0x85
printf() at printf+0x67
cpu_reset() at cpu_reset+0x81
kern_reboot() at kern_reboot+0x3a5
sys_reboot() at sys_reboot+0x42
amd64_syscall() at amd64_syscall+0x39e
Xfast_syscall() at Xfast_syscall+0xf7
--- syscall (55, FreeBSD ELF64, sys_reboot), rip = 0x40ea3c, rsp = 0x7fffffffd6d8, rbp = 0x49 ---

Totus tuus, Glebius.

More information about the freebsd-current mailing list