From owner-freebsd-arch@FreeBSD.ORG Sun Jan 30 12:24:14 2011 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29FBB106566B for ; Sun, 30 Jan 2011 12:24:14 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id DFED28FC1C for ; Sun, 30 Jan 2011 12:24:13 +0000 (UTC) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.4/8.14.4/NETPLEX) with ESMTP id p0UCC8Qn006948; Sun, 30 Jan 2011 07:12:08 -0500 X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.2.6 (mail.netplex.net [204.213.176.10]); Sun, 30 Jan 2011 07:12:08 -0500 (EST) Date: Sun, 30 Jan 2011 07:12:08 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Hans Petter Selasky In-Reply-To: <201101301016.55633.hselasky@c2i.net> Message-ID: References: <201101291032.35544.hselasky@c2i.net> <201101301016.55633.hselasky@c2i.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-arch@freebsd.org Subject: Re: ofed merge soon X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Jan 2011 12:24:14 -0000 On Sun, 30 Jan 2011, Hans Petter Selasky wrote: > On Sunday 30 January 2011 08:44:45 Jeff Roberson wrote: >> On Sat, 29 Jan 2011, Hans Petter Selasky wrote: >>> Hi, >>> >>> Just a comment: >>> >>> + >>> +#define DEFINE_MUTEX(lock) \ >>> + mutex_t lock; \ >>> + SX_SYSINIT_FLAGS(lock, &(lock).sx, "lnxmtx", SX_NOWITNESS) >>> + >>> +static inline void >>> +linux_mutex_init(mutex_t *m) >>> +{ >>> + >>> + memset(&m->sx, 0, sizeof(m->sx)); >>> + sx_init_flags(&m->sx, "lnxmtx", SX_NOWITNESS); >>> +} >>> + >>> +#define mutex_init linux_mutex_init >>> >>> I see you workaround the fact that Linux does not destroy any mutexes by >>> disabling witness. Do you have any plan to upgrade the Linux 3rd party >>> code to destroy mutexes? >> >> It introduces too many diffs that are difficult to maintain. I don't >> think it's viable. One option would be to tag the memory linux uses so >> that when it's freed we reclaim any locks in it. You could scan the >> witness tables for pointers within the free'd region fairly easily. It >> wouldn't be pretty though. > > How about requiring that Linux code, once imported, must destroy it's mutexes? Or add a mutex_destroy for all OS's, and make it a noop for Linux. Then there are no diffs to maintain... -- DE