From owner-freebsd-current Sat Feb 21 08:20:13 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id IAA09465 for freebsd-current-outgoing; Sat, 21 Feb 1998 08:20:13 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from dyson.iquest.net (dyson.iquest.net [198.70.144.127]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id IAA09449 for ; Sat, 21 Feb 1998 08:20:05 -0800 (PST) (envelope-from toor@dyson.iquest.net) Received: (from root@localhost) by dyson.iquest.net (8.8.8/8.8.8) id LAA00694; Sat, 21 Feb 1998 11:19:59 -0500 (EST) (envelope-from toor) Message-Id: <199802211619.LAA00694@dyson.iquest.net> Subject: Re: panic: rslock: cpu: 1 during boot on current kernel (was: panic: vm_page_unwire: invalid wire count: 0) In-Reply-To: <199802211612.KAA14359@home.dragondata.com> from Kevin Day at "Feb 21, 98 10:12:35 am" To: toasty@home.dragondata.com (Kevin Day) Date: Sat, 21 Feb 1998 11:19:59 -0500 (EST) Cc: toasty@home.dragondata.com, current@FreeBSD.ORG From: "John S. Dyson" Reply-To: dyson@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL32 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Kevin Day said: > One final thing, I cvsupped today's kernel, and I get: > > APIC_IO: routing 8254 via 8259 on pin 0 > Considering FFS root f/s. > SMP: AP CPU #1 Launched! > SMP: CPU1 apic_initialize(): > lint0: 0x00010700 lint1: 0x00010400 TPR: 0x00000000 SVR: 0x0000001ff > panic: rslock: cpu 1, addr: 0xf021e8d0, lock: 0x01000001 > mp_lock = 01000002; cpuid = 1; lapic.id = 01000000 > Debugger("panic") > > It then locks up. > > I've tried changing the PCI video card back to an ISA one(mentioned below), > no help with either problem. > > Going back to a 02/15/98 kernel stops this panic: rslock from happening. > Somewhere between those dates something broke SMP on my motherboard. > I had the same problem. There is a bug in clock.c (or nearby) where the clock_lock simplelock is gained recursively. I don't know how to officially fix it (since I am not in the SMP loop), but below makes the problem go-away until whomever broke it can fix it: Index: clock.c =================================================================== RCS file: /local/home/ncvs/src/sys/i386/isa/clock.c,v retrieving revision 1.111 diff -C2 -r1.111 clock.c *** clock.c 1998/02/20 16:35:37 1.111 --- clock.c 1998/02/21 10:32:11 *************** *** 1055,1059 **** ef = read_eflags(); ! disable_intr(); /* Select timer0 and latch counter value. */ --- 1055,1059 ---- ef = read_eflags(); ! __asm __volatile("cli" : : : "memory"); /* Select timer0 and latch counter value. */ *************** *** 1071,1074 **** --- 1071,1075 ---- i8254_lastcount = count; count += i8254_offset; + write_eflags(ef); return (count); -- John | Never try to teach a pig to sing, dyson@freebsd.org | it just makes you look stupid, jdyson@nc.com | and it irritates the pig. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message