From owner-freebsd-current@FreeBSD.ORG Tue Nov 18 13:26:33 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6D1A816A4CE; Tue, 18 Nov 2003 13:26:33 -0800 (PST) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 50B3243FBD; Tue, 18 Nov 2003 13:26:32 -0800 (PST) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.12.9p2/8.12.9) with ESMTP id hAILOPMg097832; Tue, 18 Nov 2003 16:24:25 -0500 (EST) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)hAILOPXa097828; Tue, 18 Nov 2003 16:24:25 -0500 (EST) (envelope-from robert@fledge.watson.org) Date: Tue, 18 Nov 2003 16:24:25 -0500 (EST) From: Robert Watson X-Sender: robert@fledge.watson.org To: Nate Lawson In-Reply-To: <20031118094821.T64353@root.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: truckman@freebsd.org cc: current@freebsd.org cc: Harald Schmalzbauer Subject: Re: Updated acpi_cpu patch X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 21:26:33 -0000 On Tue, 18 Nov 2003, Nate Lawson wrote: > Below you'll find the update patch for acpi_cpu. Please test this, > especially for SMP and laptops with _CST objects in their ASL. ... > Notes: > * Add a detach method that disables entry to acpi_cpu_idle and in the SMP > case, IPIs all processors to exit sleeping. This fixes a panic on > shutdown for MP boxes. Sigh, I appear to have been mistaken about the SMP reboot problem being fixed, sorry about that. Mark's random_harvest panic appears to have caused me to miss the other failure mode in my last test. Stack trace attached, and I believe I'm running with your latest patch. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Network Associates Laboratories crash2# reboot boot() called on cpu#0 Waiting (max 60 seconds) for system process `vnlru' to stop...stopped Waiting (max 60 seconds) for system process `bufdaemon' to stop...stopped Waiting (max 60 seconds) for system process `syncer' to stop...stopped syncing disks, buffers remaining... done Uptime: 1m4s Shutting down ACPI terneRle btoroatpi n1g2. .w.i h interrupts disabled panic: Assertion td->td_turnstile != NULL failed at ../../../kern/subr_turnstile .c:437 cpuid = 1; Debugger("panic") Stopped at Debugger+0x55: xchgl %ebx,in_Debugger.0 db> trace Debugger(c08975c7,1,c0896aca,c8f389f4,100) at Debugger+0x55 panic(c0896aca,c089a415,c089a1f2,1b5,c0959398) at panic+0x156 turnstile_wait(c20e1280,c0955320,c2007640,1cc,c101bfe4) at turnstile_wait+0x2ac _mtx_lock_sleep(c0955320,0,c08ad7ae,df,0) at _mtx_lock_sleep+0x125 _mtx_lock_flags(c0955320,0,c08ad7ae,df,a) at _mtx_lock_flags+0x98 vm_fault(c0951d00,0,1,0,c1380640) at vm_fault+0x5a trap_pfault(c8f38c04,0,9c,fc,9c) at trap_pfault+0x109 trap(c1380018,c8f30010,c0660010,0,10) at trap+0x333 calltrap() at calltrap+0x5 --- trap 0xc, eip = 0xc047c619, esp = 0xc8f38c44, ebp = 0xc8f38c64 --- AcpiHwLowLevelRead(10,c8f38c80,94,10,0) at AcpiHwLowLevelRead+0x19 AcpiHwRegisterRead(0,1,c8f38ca0,0,c137fc5c) at AcpiHwRegisterRead+0x71 AcpiGetRegister(1,c8f38ccc,0,3e8,0) at AcpiGetRegister+0x61 acpi_cpu_idle(c8f38d0c,c0658f4c,c0955320,2,c089533f) at acpi_cpu_idle+0x5e cpu_idle(c0955320,2,c089533f,53,14b) at cpu_idle+0x28 idle_proc(0,c8f38d48,c08951f4,311,e8241c89) at idle_proc+0x3c fork_exit(c0658f10,0,c8f38d48) at fork_exit+0xb4 fork_trampoline() at fork_trampoline+0x8 --- trap 0x1, eip = 0, esp = 0xc8f38d7c, ebp = 0 --- db> (kgdb) bt #0 0xc081317b in Debugger (msg=0x12
) at machine/atomic.h:263 #1 0xc066db36 in panic (fmt=0xc0896aca "Assertion %s failed at %s:%d") at ../../../kern/kern_shutdown.c:534 #2 0xc0693c8c in turnstile_wait (ts=0xc20e1280, lock=0xc0955320, owner=0xc2007640) at ../../../kern/subr_turnstile.c:469 #3 0xc0664125 in _mtx_lock_sleep (m=0xc0955320, opts=0, file=0xc08ad7ae "../../../vm/vm_fault.c", line=223) at ../../../kern/kern_mutex.c:476 #4 0xc0663c88 in _mtx_lock_flags (m=0xc0955320, opts=0, file=0xc08ad7ae "../../../vm/vm_fault.c", line=223) at ../../../kern/kern_mutex.c:218 #5 0xc07d39fa in vm_fault (map=0xc0951d00, vaddr=0, fault_type=1 '\001', fault_flags=0) at ../../../vm/vm_fault.c:223 #6 0xc0829159 in trap_pfault (frame=0xc8f38c04, usermode=0, eva=156) at ../../../i386/i386/trap.c:711 #7 0xc0828dd3 in trap (frame= {tf_fs = -1053294568, tf_es = -923598832, tf_ds = -1067057136, tf_edi = 0, tf_esi = 16, tf_ebp = -923562908, tf_isp = -923562960, tf_ebx = -923562880, tf_edx = -1, tf_ecx = 148, tf_eax = -923562880, tf_trapno = 12, tf_err = 0, tf_eip = -1069038055, tf_cs = 8, tf_eflags = 65538, tf_esp = 1024, tf_ss = -923562880}) at ../../../i386/i386/trap.c:420 #8 0xc08148b8 in calltrap () at {standard input}:94 #9 0xc047c321 in AcpiHwRegisterRead (UseLock=0 '\0', RegisterId=16, ReturnValue=0x12) at ../../../contrib/dev/acpica/hwregs.c:601 #10 0xc047c071 in AcpiGetRegister (RegisterId=18, ReturnValue=0x12, Flags=0) at ../../../contrib/dev/acpica/hwregs.c:375 #11 0xc0499ebe in acpi_cpu_idle () at ../../../dev/acpica/acpi_cpu.c:798 #12 0xc081d2d8 in cpu_idle () at ../../../i386/i386/machdep.c:1071 #13 0xc0658f4c in idle_proc (dummy=0x0) at ../../../kern/kern_idle.c:86 #14 0xc0658c44 in fork_exit (callout=0xc0658f10 , arg=0x12, frame=0x12) at ../../../kern/kern_fork.c:793 (kgdb) l *AcpiHwLowLevelRead+0x19 0xc047c619 is in AcpiHwLowLevelRead (../../../contrib/dev/acpica/hwregs.c:836). 831 /* 832 * Must have a valid pointer to a GAS structure, and 833 * a non-zero address within. However, don't return an error 834 * because the PM1A/B code must not fail if B isn't present. 835 */ 836 if ((!Reg) || 837 (!ACPI_VALID_ADDRESS (Reg->Address))) 838 { 839 return (AE_OK); 840 }