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

Reply via email to