From owner-freebsd-hackers Sun Nov 7 19:36:21 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from assaris.sics.se (assaris.sics.se [193.10.66.108]) by hub.freebsd.org (Postfix) with ESMTP id 8A8A814D5C for ; Sun, 7 Nov 1999 19:36:16 -0800 (PST) (envelope-from assar@sics.se) Received: (from assar@localhost) by assaris.sics.se (8.9.3/8.7.3) id EAA34834; Mon, 8 Nov 1999 04:37:24 +0100 (CET) To: freebsd-hackers@FreeBSD.ORG Subject: SIMPLELOCK_DEBUG and apause Mime-Version: 1.0 (generated by tm-edit 7.68) Content-Type: text/plain; charset=US-ASCII From: Assar Westerlund Date: 08 Nov 1999 04:37:24 +0100 Message-ID: <5lyac9d56z.fsf@assaris.sics.se> Lines: 25 X-Mailer: Gnus v5.5/Emacs 19.34 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Why trying to debug some locking code of my own I enabled SIMPLELOCK_DEBUG, only to find out that I was getting lots of `simple_unlock: lock not held' in lockmgr -> acquire -> apause. Looking closer at `apause' it seems rather clear that it can cause this. I proposed simple change is below. Comments? /assar --- kern_lock.c.orig Mon Nov 8 03:55:26 1999 +++ kern_lock.c Mon Nov 8 04:24:13 1999 @@ -116,9 +119,11 @@ simple_lock(&lkp->lk_interlock); if ((lkp->lk_flags & flags) == 0) return 0; + simple_unlock(&lkp->lk_interlock); break; } } + simple_lock(&lkp->lk_interlock); } return 1; } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message