new panic in cpu_reset() with WITNESS

Andriy Gapon avg at FreeBSD.org
Mon Jan 23 16:43:26 UTC 2012


on 23/01/2012 18:26 Gleb Smirnoff said the following:
> 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

Ah, db_putc does something different from what I expected.
Can you hack it to never use printf?

> 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 ---
> db> 
> 


-- 
Andriy Gapon


More information about the freebsd-current mailing list