Re: Panic on suspend

From: Filippo Forti <filippo.forti_at_fastwebnet.it>
Date: Wed, 2 Mar 2005 17:53:04 +0100
On Tue, Mar 01, 2005 at 05:03:50PM -0500, John Baldwin wrote:
> On Tuesday 01 March 2005 03:30 pm, Filippo Forti wrote:
> > Hi,
> > I got a fully reproduceable panic while trying to suspend (to S3) on my
> > laptop. FreeBSD is -CURRENT from Monday.
> >
> > I'm using a modified DSDT which used to work before I updated on Monday.
> > dmesg from after reboot is attacched.
> >
> > Here comes gbd output
> >
> >
> > Fatal trap 12: page fault while in vm86 mode
> > fault virtual address	= 0x2000
> > fault code				= user write, page not present
> > instruction pointer		= 0xc000:0x5195
> > stack pointer			= 0x0:0xfe4
> > frame pointer			= 0x0:0x0
> > code segment			= base 0x600005, limit 0x2, type 0x11
> > 						= DPL 1, pres 0, def32 0, gran 0
> > processor eflag			= interrupt enabled, resume, mv86, IOPL = 0
> > current process 		= 1046 (acpiconf)
> > [thread pid 1046 tid 100084]
> > Stopped at 0x5159: *** error reading from address 5159 ***
> >
> > db> tr
> > Tracing pid 1046 tid 100084 td 0xc27645c0
> > (null)(ff000e2c3,f000ff53,f000ff54,f00092da) at 0x5195
> > _end(ccce4fab,b638f354,3a6c5da3,ec956de5,fe6dff6c) at 0xf000ff53
> >
> > db> where
> > Tracing pid 1046 tid 100084 td 0xc27645c0
> > kdb_enter(c08d00f2,c08e69ce,c08cbfd1,c08ee7f9,2b8) at kdb_enter+0x31
> > witness_checkorder(c2cc2a54,9,c08ee7f9,2b8,0) at witness_checkorder+0xc9
> > _mtx_lock_flags(c2cc2a54,0,c08ee7f9,2b8,0) at _mtx_lock_flags+0x85
> > trap_pfault(c0c21fa8,0,2000,c0c21fa8,2000) at trap_pfault+0xa1
> > trap (0,0,0,1000,0) at trap+0x34b
> > calltrap() at calltrap+0x5
> > ---trap 0xc, eip = 0x5195, esp = 0xc0c21fe8, ebp = 0 ---
> >
> > db> next
> > panic: blockable sleep lock (sleep mutex) process lock _at_
> > /usr/src/sys/i386/i386/trap.c:696
> > KDB: enter: panic
> > After 2 instructions (0 loads, 0 stores),
> > [thread 1046 tid 1000084]
> > stopped at kdb_enter+0x31: ret
> >
> > Thanks for your help
> > Filippo
> 
> Can you try this patch to get rid of the bogus witness warning:
> 
This patch causes the kernel to panic on boot. Here comes something from
there:

Fatal trap 12: page fault while in kernel mode
fault address 		= 0xbfbfffff
fault code 			= supervisor write, page not present
instruction pointer = 0x8:0xc085055d
stack pointer 		= 0x10:0xe35a6cb8
frame pointer		= 0x10:0xe35a6d14
code segment		= base 0x0, limit 0xfffff, type 0x1b
					= DPL 0, pres 1, def32 1, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 0
current process 	= 1 (swapper)
[thread pid 1 tid 100003]
Stopped at subyte+0x25: movb %al,0(%edx)

db> where
Tracing pid 1 tid 100003 td 0xc227d450 
subyte(0,e35a6d48,c08ca09d,30e,0) at subyte+0x25
fork_exit)c0634dac,0,e35a6d48) at fork_exit+0xc7
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip=0, esp=0xe35a6d7c, epb=0 ---

> Index: trap.c
> ===================================================================
> RCS file: /usr/cvs/src/sys/i386/i386/trap.c,v
> retrieving revision 1.270
> diff -u -r1.270 trap.c
> --- trap.c	16 Nov 2004 20:42:31 -0000	1.270
> +++ trap.c	18 Feb 2005 15:31:37 -0000
> _at__at_ -238,7 +238,7 _at__at_
>  		 * to the debugger.
>  		 */
>  		eva = rcr2();
> -		if (td->td_critnest == 0)
> +		if (td->td_critnest == 0 && td->td_sleeplocks == NULL)
>  			enable_intr();
>  		else
>  			trap_fatal(&frame, eva);
> 
> 
> -- 
> John Baldwin <jhb_at_FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
> "Power Users Use the Power to Serve"  =  http://www.FreeBSD.org

P.S.: I worte the other messages in reply to my problem and will notice
you of the results as soon as I can test all of them. 

Thanks for your help
Filippo
Received on Wed Mar 02 2005 - 15:52:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:29 UTC