From owner-freebsd-current@FreeBSD.ORG Tue Jul 13 19:10:32 2004 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 BCB3116A4CE for ; Tue, 13 Jul 2004 19:10:32 +0000 (GMT) Received: from mail.sandvine.com (sandvine.com [199.243.201.138]) by mx1.FreeBSD.org (Postfix) with ESMTP id 29DBC43D1F for ; Tue, 13 Jul 2004 19:10:32 +0000 (GMT) (envelope-from gnagelhout@sandvine.com) Received: by mail.sandvine.com with Internet Mail Service (5.5.2657.72) id <312Y5Q45>; Tue, 13 Jul 2004 15:10:31 -0400 Message-ID: From: Gerrit Nagelhout To: "'current@freebsd.org'" Date: Tue, 13 Jul 2004 15:10:25 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2657.72) Content-Type: text/plain; charset="iso-8859-1" Subject: SW_WDOG problem 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, 13 Jul 2004 19:10:32 -0000 Hi, Were are trying out the new software watchdog on current (from a couple of weeks ago) and are running into a panic within a panic. What happens is when the software watchdog tries to panic the system (with interrupts disabled), it manages to write out the core file, but then panics again in pmap_invalidate_range because interrupts are enabled. Any ideas on how to work around this? Thanks, Gerrit if (smp_started) { if (!(read_eflags() & PSL_I)) panic("%s: interrupts disabled", __func__); mtx_lock_spin(&smp_tlb_mtx); } else critical_enter(); backtrace(c0720347,2,c78e4550,14674,104) at backtrace+0x1c __panic(c07376ff,273,c07376e7,c06fccf0,d4574000) at __panic+0xc4 pmap_invalidate_range(c07b73c0,d4573000,d4574000) at pmap_invalidate_range+0x50 pmap_qenter(d4573000,e064d9f4,1,22,d4577000) at pmap_qenter+0x65 vm_hold_load_pages(d3b40c18,d4573000,d4577000,c7779000,d3b21110) at vm_hold_load_pages+0x17c allocbuf(d3b40c18,4000,4000,4000,200000a4) at allocbuf+0x3a3 geteblk(4000,c22619a0,c053dcae,c05a447d,e064dab0) at geteblk+0x52 ibwrite(d3b21110,e064dab0,c059a3bd,d3b21110,e064dae8) at ibwrite+0x25c bwrite(d3b21110,e064dae8,c05a4dd4,d3b21110,80012) at bwrite+0x1a bawrite(d3b21110,80012,0,c22619a0,c050b01d) at bawrite+0x1d vop_stdfsync(e064db3c,0,c7779000,e064db08,c050b01d) at vop_stdfsync+0x1d4 spec_fsync(e064db3c,e064db68,c065b373,e064db3c,30002) at spec_fsync+0x36 spec_vnoperate(e064db3c,30002,c0779560,0,c773c844) at spec_vnoperate+0x1d ffs_sync(c773c800,2,c225c100,c0779560,c773c800) at ffs_sync+0x423 sync(c0779560,0,c056fb5c,c070e65e,c056fc00) at sync+0x111 boot(100,0,28d,c071d938,100) at boot+0x1b6 __panic(c071d938,28d,c071d927,c076f7f4,c076ebd8) at __panic+0x24c watchdog_fire(e064dcac,c72cb880,e064dc3c,c06cf97f) at watchdog_fire+0xde hardclock(e064dcac,e064dc58,c06cf8ef,c06dbe6b,c740f280) at hardclock+0x14a clkintr(e064dcac,46,e064dc90,0,c22619a0) at clkintr+0xf4 intr_execute_handlers(c0770cc0,e064dcac,e064dca4,c06ca3a0,4) at intr_execute_handlers+0x90 atpic_handle_intr(0) at atpic_handle_intr+0xf4 Xatpic_intr0() at Xatpic_intr0+0x2a --- interrupt, eip = 0xc06cbeba, esp = 0xe064dcf0, ebp = 0xe064dcf0 --- cpu_idle_default(e064dd18,c0534870,1,0,0) at cpu_idle_default+0xa cpu_idle(1,0,0,0,c22606e0) at cpu_idle+0x2e idle_proc(0,e064dd48,9c000002,960e8fa,0) at idle_proc+0x20 fork_exit(c0534850,0,e064dd48) at fork_exit+0x7f fork_trampoline() at fork_trampoline+0xd