Wednesday 6 April 2011

New dtrace release

This is an interim fix for the recent pgfault problem. A silly in the
handler meant we didnt restore the interrupt stack properly, resulting
in a hung/broken kernel if a bad probe function, such as copyinstr(arg0)
triggered a page fault.

Initial results look good - although I havent done a diverse validation across
my kernels, but it should boost dtrace usability.

I am seeing a lot of these on FC14, indicating some kernel API protocols
are not being conformed to...thats next on my list:


[ 311.686851] BUG: sleeping function called from invalid context at arch/x86/mm/fault.c:1074
[ 311.687789] in_atomic(): 0, irqs_disabled(): 1, pid: 2553, name: tests.pl
[ 311.687789] Pid: 2553, comm: tests.pl Tainted: P D W 2.6.35.6-45.fc14.x86_64 #1
[ 311.687789] Call Trace:
[ 311.687789] [<ffffffff8103d12b>] __might_sleep+0xeb/0xf0
[ 311.687789] [<ffffffff8146c374>] do_page_fault+0x15c/0x265
[ 311.687789] [<ffffffff814697f5>] page_fault+0x25/0x30
[ 311.687789] [<ffffffffa023ddfe>] ? dt_try+0x0/0xa [dtracedrv]
[ 311.687789] [<ffffffffa021f0b2>] ? dtrace_load8+0x41/0x90 [dtracedrv]
[ 311.687789] [<ffffffffa022842b>] dtrace_probe+0x202b/0x2420 [dtracedrv]
[ 311.687789] [<ffffffff8111f4d1>] ? path_put+0x22/0x27
[ 311.687789] [<ffffffff811201e9>] ? putname+0x34/0x36
[ 311.687789] [<ffffffff81116511>] ? do_sys_open+0xfe/0x110
[ 311.687789] [<ffffffffa024011e>] dtrace_systrace_syscall2+0x208/0x21b [dtracedrv]
[ 311.687789] [<ffffffffa02402ab>] dtrace_systrace_syscall+0xb2/0xb4 [dtracedrv]
[ 311.687789] [<ffffffff81009cf2>] system_call_fastpath+0x16/0x1b



Post created by CRiSP v10.0.3b-b5955


No comments:

Post a Comment