From owner-freebsd-hackers Sun Jul 14 17:36:01 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id RAA19057 for hackers-outgoing; Sun, 14 Jul 1996 17:36:01 -0700 (PDT) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id RAA19040 for ; Sun, 14 Jul 1996 17:35:56 -0700 (PDT) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id RAA07332; Sun, 14 Jul 1996 17:28:04 -0700 From: Terry Lambert Message-Id: <199607150028.RAA07332@phaeton.artisoft.com> Subject: Re: Some interesting papers on BSD ... To: dm@sgi.com Date: Sun, 14 Jul 1996 17:28:03 -0700 (MST) Cc: imp@village.org, bde@zeta.org.au, matt@lkg.dec.com, freebsd-hackers@FreeBSD.org, tech-kern@NetBSD.ORG In-Reply-To: <199607140642.XAA15566@neteng.engr.sgi.com> from "David S. Miller" at Jul 13, 96 11:42:12 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk > Date: Sat, 13 Jul 1996 23:29:08 -0600 > From: Warner Losh > > Sun, when they were writing Solaris, is rumored to have produced > "warlock." This program would go through all your sources and warn > of potential deadlock situations in them. They never released it > as they considered it a competitive advantage to them... > > 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. Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.