From owner-freebsd-current@FreeBSD.ORG Wed Mar 4 12:54:33 2009 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1CCDB106564A for ; Wed, 4 Mar 2009 12:54:33 +0000 (UTC) (envelope-from barney_cordoba@yahoo.com) Received: from web63903.mail.re1.yahoo.com (web63903.mail.re1.yahoo.com [69.147.97.118]) by mx1.freebsd.org (Postfix) with SMTP id A17978FC17 for ; Wed, 4 Mar 2009 12:54:32 +0000 (UTC) (envelope-from barney_cordoba@yahoo.com) Received: (qmail 66078 invoked by uid 60001); 4 Mar 2009 12:54:32 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1236171272; bh=6oNJZqLKtnhzKLLYql40ffZ8CQ9RlkzQ47UwdewnUyU=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=q2koqk/gBYqFHSTyu823UYPc7QyuzB4B6gostvAxWe/AJEL1nuiqPgwc8UdWWUX1ArRsw/GVwWH0edvPkEjEDjKj537P5W5Yz3PU0h9owM9OEuOXrbrwP93EQLXizmW90kCeg2x9m/DnC5nirliaBlFp9mU3rm8uvcX0wzAMviQ= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=H1A8BBLX3YFBx7ThpSNpLBy5MnkZO6jQKKrHTWKT1e/Mw/etq8k1IlS0R9SixvVeGHsV2lc7uxxwu484AVt+00iBLLBdFQPfP4r/DDpGil+o4mN0a2nkFOemiEAWdRwv3B+jMjfxPp7XBIAtMFmft38+J5BAu1GOsrtN/9beMws=; Message-ID: <142283.66010.qm@web63903.mail.re1.yahoo.com> X-YMail-OSG: UuailxMVM1myZ1EFidsNnAso_wHuwGPvYmr2L96SVa9H_FIWoWzoox9oYkdKwd_NDIlT1o5XXNJhVb9t1Xt5kafFqjKgyYQC2ONT4eQTDwf8i8qDnb9Rr6zEBsPbY3kpl__L48F.ysbOdVoGWzlxasqRWCp_VquyfrqLTasWkmV7rv_RqYe0Hzc4MS7.m7RPpLA.2Sh0InkL13s- Received: from [98.242.222.229] by web63903.mail.re1.yahoo.com via HTTP; Wed, 04 Mar 2009 04:54:32 PST X-Mailer: YahooMailWebService/0.7.289.1 Date: Wed, 4 Mar 2009 04:54:32 -0800 (PST) From: Barney Cordoba To: current@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Subject: MTX Lock implementation question X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: barney_cordoba@yahoo.com List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Mar 2009 12:54:33 -0000 Suppose the following: Module foo.c foo_getlock(sc) { FOO_LOCK(sc); } foo_unlock(sc) { FOO_UNLOCK(sc); } foo_dosomething(sc) { MTX_LOCK_ASSERT(sc); foo_dooit(); } Module bar.c bar_dofoo() { foo_getlock(sc); foo_dosomething(sc); foo_unlock(sc); } Is this something that shouldn't work? I need to access functions that require locks in a different module, but this code barfs on ASSERT with witness enabled. Is this a deflugalty in WITNESS, or do I need to create functions within foo that do the locking? Its been working ok for awhile (its not a high volume function) but when I fired up witness to debug something else I encountered witness panics. Thanks, Barney