I just got a very strange panic when running a torture
test on my GLDv3 driver:
in.rshd:
#pf Page fault
Bad kernel fault at addr=0x0
pid=16617, pc=0xfffffffff84f87a7, sp=0xffffff00083ec5f8, eflags=0x10246
cr0: 8005003b<pg,wp,ne,et,ts,mp,pe> cr4: 6f8<xmme,fxsr,pge,mce,pae,pse,de>
cr2: 0
cr3: 3493000
cr8: c
rdi: ffffff01d72a1a10 rsi: ffffff00083ec600 rdx: ffffff01d44eb120
rcx: 3 r8: ffffff01cfde8500 r9: 85b
rax: 0 rbx: ffffff01cecc9c60 rbp: 0
r10: 300004c57 r11: ffffff01e6d9c000 r12: ffffff01cecc9c60
r13: ffffff01d72a1a10 r14: ffffff01d2ecc080 r15: ffffff01d0935bb8
fsb: 0 gsb: ffffff01ceaa6ac0 ds: 4b
es: 4b fs: 0 gs: 1c3
trp: e err: 0 rip: fffffffff84f87a7
cs: 30 rfl: 10246 rsp: ffffff00083ec5f8
ss: 38
ffffff00083ec3e0 unix:die+c8 ()
ffffff00083ec4f0 unix:trap+13b9 ()
ffffff00083ec500 unix:cmntrap+e9 ()
According to mdb, there is no stack:
> $C
I'm assuming the stack got corrupted somehow, but the current thread
seems well within its stack:
> ffffff01d44eb120::print struct _kthread t_stkbase
t_stkbase = 0xffffff00083e8000
Is it possible some other stack smashed into this thread's stack, and
trashed it? Will Solaris panic if a thread exceeds its kernel stack
space, or will it just corrupt whatever is below it? How do I debug
something like this?
Thanks,
Drew
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss