Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: try KMGUARD



On Wed, Mar 07, 2012 at 10:16:33PM +0000, Mindaugas Rasiukevicius wrote:
> Paul Goyette <paul%whooppee.com@localhost> wrote:
> > > Debugging such memory corruptions is difficult.  Can you try running
> > > with KMGUARD enabled?  See the bottom of kmem(9) man page how to enable
> > > it.
> > >
> > > One might need to try different depth levels as the system can run out
> > > of memory very quickly.  This requires 64-bit machine, e.g. amd64 (i386
> > > would run out of KVA) with lots of RAM.
> > 
> > I will see what I can do here.  The qemu test environment runs with 
> > fairly limited memory (only 128M) so I suspect that will need to be 
> > (drastically?) increased?  (My host has 32GB of real RAM but not sure 
> > how much qemu can support.)
> 
> Are you able to try to reproduce on a real hardware?  Resource usage by
> KMGUARD is very severe.  It might not even boot with 128 MB.

I tried on a amd64 host with 8GB RAM (looks like I expanded the i386 tests.tgz
instead of amd64 but it shouldn't matter). I got a panic while running the
stress_long test, but not from kmemguard unforntunably:
uvm_fault(0xffffffff80e7c960, 0xfffffe82bfc92000, 1) -> e
uvm_fault(0xffffffff80e7c960, 0xfffffe82bfc92000, 1) -> e
uvm_fault(0xffffffff80e7c960, 0xfffffe82bfc92000, 1) -> e
fatal page faultfatal page faultfatal page fault in supervisor mode
 in supervisor mode
 in supervisor mode
trap type 6 code 0 rip ffffffff8053460d cs 8 rflags 10202 cr2  fffffe82bfc92c01 
cpl 0 rsp fffffe810c4feb38
kterranp etly: pepa g6e c foadeu lt0  rtripap ,ff cfoffdeff=0f8
0Stopped in pid 29044.58 (rump_server) at        netbsd:mutex_spin_enter+0xd:   
 m
ovzbl   1(%rdi),%ecx
db{5}> tr
mutex_spin_enter() at netbsd:mutex_spin_enter+0xd
netbsd32__lwp_unpark() at netbsd:netbsd32__lwp_unpark+0x2a
netbsd32_syscall() at netbsd:netbsd32_syscall+0x18c3
db{5}> mach cpu 0
using CPU 0
db{5}> tr
x86_stihlt() at netbsd:x86_stihlt+0x6
acpicpu_cstate_idle_enter() at netbsd:acpicpu_cstate_idle_enter+0x48
acpicpu_cstate_idle() at netbsd:acpicpu_cstate_idle+0xbc
idle_loop() at netbsd:idle_loop+0x18c
db{5}> mach cpu 1
using CPU 1
db{5}> tr
x86_stihlt() at netbsd:x86_stihlt+0x6
acpicpu_cstate_idle_enter() at netbsd:acpicpu_cstate_idle_enter+0x48
acpicpu_cstate_idle() at netbsd:acpicpu_cstate_idle+0xbc
idle_loop() at netbsd:idle_loop+0x18c
?() at 0
db{5}> mach cpu 2
using CPU 2
db{5}> tr
x86_stihlt() at netbsd:x86_stihlt+0x6
acpicpu_cstate_idle_enter() at netbsd:acpicpu_cstate_idle_enter+0x48
acpicpu_cstate_idle() at netbsd:acpicpu_cstate_idle+0xbc
idle_loop() at netbsd:idle_loop+0x18c
?() at 0
db{5}> mach cpu 3
using CPU 3
db{5}> tr
x86_stihlt() at netbsd:x86_stihlt+0x6
acpicpu_cstate_idle_enter() at netbsd:acpicpu_cstate_idle_enter+0x48
acpicpu_cstate_idle() at netbsd:acpicpu_cstate_idle+0xbc
idle_loop() at netbsd:idle_loop+0x18c
?() at 0
db{5}> mach cpu 4
using CPU 4
db{5}> tr
x86_stihlt() at netbsd:x86_stihlt+0x6
acpicpu_cstate_idle_enter() at netbsd:acpicpu_cstate_idle_enter+0x48
acpicpu_cstate_idle() at netbsd:acpicpu_cstate_idle+0xbc
idle_loop() at netbsd:idle_loop+0x18c
?() at 0
db{5}> mach cpu 6
using CPU 6
db{5}> tr
bus_space_write_1() at netbsd:bus_space_write_1+0xe
cnputc() at netbsd:cnputc+0x2b
putchar() at netbsd:putchar+0xd7
kprintf() at netbsd:kprintf+0x6f8 
printf() at netbsd:printf+0x51
trap() at netbsd:trap+0x43d
--- trap (number 6) ---
mutex_spin_enter() at netbsd:mutex_spin_enter+0xd
netbsd32____lwp_park50() at netbsd:netbsd32____lwp_park50+0x59
netbsd32_syscall() at netbsd:netbsd32_syscall+0x18c3
db{5}> tr
x86_pause() at netbsd:x86_pause+0x2
printf() at netbsd:printf+0x25
trap() at netbsd:trap+0x43d
--- trap (number 6) ---
mutex_spin_enter() at netbsd:mutex_spin_enter+0xd
netbsd32____lwp_park50() at netbsd:netbsd32____lwp_park50+0x59
netbsd32_syscall() at netbsd:netbsd32_syscall+0x18c3

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index