From owner-cvs-sys Sat Aug 30 20:21:03 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id UAA15229 for cvs-sys-outgoing; Sat, 30 Aug 1997 20:21:03 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id UAA15058; Sat, 30 Aug 1997 20:19:14 -0700 (PDT) From: Steve Passe Received: (from fsmp@localhost) by freefall.freebsd.org (8.8.6/8.8.5) id UAA08194; Sat, 30 Aug 1997 20:17:50 -0700 (PDT) Date: Sat, 30 Aug 1997 20:17:50 -0700 (PDT) Message-Id: <199708310317.UAA08194@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: cvs commit: src/sys/i386/include lock.h smptests.h src/sys/i386/isa sio.c src/sys/i386/i386 mp_machdep.c simplelock.s Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk fsmp 1997/08/30 20:17:50 PDT Modified files: sys/i386/include lock.h smptests.h sys/i386/i386 mp_machdep.c simplelock.s Log: Debug version of simple_lock. This will store the CPU id of the holding CPU along with the lock. When a CPU fails to get the lock it compares its own id to the holder id. If they are the same it panic()s, as simple locks are binary, and this would cause a deadlock. Controlled by smptests.h: SL_DEBUG, ON by default. Some minor cleanup. Revision Changes Path 1.2 +8 -9 src/sys/i386/include/lock.h 1.24 +15 -1 src/sys/i386/include/smptests.h 1.49 +11 -20 src/sys/i386/i386/mp_machdep.c 1.6 +88 -1 src/sys/i386/i386/simplelock.s Modified files: sys/i386/isa sio.c Log: Created a private simple_lock to control accesses to com data structs and hardware. There is now another simple_lock around clock data/hardware accesses in clock.c and microtime.s. It is my belief that this is the only area sio/cy might stumble into during an unblocked INTerrupt. Thus I separated the sio/cy code from the generic disable_intr()/enable_intr() routines. Controlled by smptests.h: USE_COMLOCK, ON by default. Revision Changes Path 1.179 +76 -51 src/sys/i386/isa/sio.c