From owner-freebsd-hackers Sun Jul 14 20:28:34 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id UAA13748 for hackers-outgoing; Sun, 14 Jul 1996 20:28:34 -0700 (PDT) Received: from parkplace.cet.co.jp (parkplace.cet.co.jp [202.32.64.1]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id UAA13742 for ; Sun, 14 Jul 1996 20:28:26 -0700 (PDT) Received: from localhost (michaelh@localhost) by parkplace.cet.co.jp (8.7.5/CET-v2.1) with SMTP id DAA06315; Mon, 15 Jul 1996 03:26:35 GMT Date: Mon, 15 Jul 1996 12:26:35 +0900 (JST) From: Michael Hancock To: Terry Lambert cc: dm@sgi.com, imp@village.org, bde@zeta.org.au, matt@lkg.dec.com, freebsd-hackers@freebsd.org, tech-kern@NetBSD.ORG Subject: Re: Some interesting papers on BSD ... In-Reply-To: <199607150028.RAA07332@phaeton.artisoft.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Sun, 14 Jul 1996, Terry Lambert wrote: > > Solaris kernel also has a debugging feature, it's called "deadman". > > Every so often a timer based callout runs which runs down all the > > mutex/semaphore/spinlock holder lists in the kernel and panics if any > > circular and/or deadlock cases are found. > > The IBM database design manual indicates several methods of fast > computation of transitive closure over acyclic directed graphs > which make this kind of kludge unnecessary. IMO, deadlock > avoidance beats deadlock detection any day of the week. Consider > the issue of a two context deadly embrace for a resource: how do > you unwind state so you don't lose already processed context? In > the deadlock detection case, the anser is "you probably don't". Or > you go to some overly complicated cruft, like the system call > interrupt code in the trap, using a longjmp to unwind the stack. How is this different from implementors carefully following a set of rules in terms of performance? Are there just too many permutations that it just isn't reasonable to expect to be able to avoid deadlocks without computing transitive closure across directed graphs? -mike hancock