Dtrace panic'ed
Chagin Dmitry
dchagin at freebsd.org
Sun Feb 15 07:38:34 PST 2009
On Fri, Feb 13, 2009 at 12:02:10PM -0500, Andrew Gallatin wrote:
> I was trying to run a simple dtrace profiling script, and
> panic'ed the machine using today's -current on an 8-way opteron.
>
> I tried to run:
> #!/usr/sbin/dtrace -s
>
> profile:::profile-997
> {
> @a[stack(20)]=count();
> }
>
> END
> {
> trunc(@a, 20);
> printa(@a);
> }
>
> Everything was fine until I hit ^C. This appeared
> on the tty (which I expected):
>
> dtrace: script '/nfs/home/gallatin/dtrace/profile_stack.d' matched 2 probes
> ^C
> CPU ID FUNCTION:NAME
> 1 2 :END
>
> kernel`vm_page_splay+0x5b
> kernel`trap+0x482
> kernel`0xffffffff807eb8f3
> 1
>
> kernel`vm_fault+0x1e2
> 1
>
> kernel`pagezero+0x17
> 1
>
> kernel`cpu_idle+0x1
> 1
>
> kernel`pmap_enter+0x6f
> kernel`0xffffffff807eb8f3
> 1
>
> 4
>
> kernel`pagezero+0x11
> 4
>
> kernel`acpi_cpu_c1+0x6
> kernel`0xffffffff807ebd4e
> 14063
>
> And then the machine fell over with this on console:
>
> kernel trap 12 with interrupts disabled
>
>
> Fatal trap 12: page fault while in kernel mode
> cpuid = 7; apic id = 07
> fault virtual address = 0x20
> fault code = supervisor read data, page not present
> instruction pointer = 0x8:0xffffffff80e33187
> stack pointer = 0x10:0xfffffffe4004aa70
> frame pointer = 0x10:0xfffffffe4004aa80
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags = resume, IOPL = 0
> current process = 11 (idle: cpu7)
> trap number = 12
> panic: page fault
> cpuid = 7
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> panic() at panic+0x182
> trap_fatal() at trap_fatal+0x2ad
> trap_pfault() at trap_pfault+0x294
> trap() at trap+0x38b
> calltrap() at calltrap+0x8
> --- trap 0xc, rip = 0xffffffff80e33187, rsp = 0xfffffffe4004aa70, rbp =
> 0xfffffffe4004aa80 ---
> cyclic_disable_xcall() at cyclic_disable_xcall+0x7
> smp_rendezvous_action() at smp_rendezvous_action+0xb3
> Xrendezvous() at Xrendezvous+0x64
> --- interrupt, rip = 0xffffffff807e3cf6, rsp = 0xfffffffe4004ab70, rbp =
> 0xfffffffe4004ab80 ---
> acpi_cpu_c1() at acpi_cpu_c1+0x6
> acpi_cpu_idle() at acpi_cpu_idle+0x19c
> sched_idletd() at sched_idletd+0x234
> fork_exit() at fork_exit+0x118
> fork_trampoline() at fork_trampoline+0xe
> --- trap 0, rip = 0, rsp = 0xfffffffe4004ad40, rbp = 0 ---
> Uptime: 5m14s
> Physical memory: 8177 MB
> Dumping 506 MB: 491 475 459 443 427 411 395 379 363 347 331 315 299 283
> 267 251 235 219 203 187 171 155 139 123 107 91 75 59 43 27 11
>
>
hi, I have the same problem and found the hack "solution":
dchagin# sysctl machdep.idle=hlt
machdep.idle: acpi -> hlt
thnx!
--
Have fun!
chd
More information about the freebsd-current
mailing list