From owner-cvs-all@FreeBSD.ORG Fri Dec 5 22:54:57 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 588E916A4D0 for ; Fri, 5 Dec 2003 22:54:57 -0800 (PST) Received: from relay.pair.com (relay.pair.com [209.68.1.20]) by mx1.FreeBSD.org (Postfix) with SMTP id F22B943FE3 for ; Fri, 5 Dec 2003 22:54:53 -0800 (PST) (envelope-from silby@silby.com) Received: (qmail 41020 invoked from network); 6 Dec 2003 06:54:52 -0000 Received: from niwun.pair.com (HELO localhost) (209.68.2.70) by relay.pair.com with SMTP; 6 Dec 2003 06:54:52 -0000 X-pair-Authenticated: 209.68.2.70 Date: Sat, 6 Dec 2003 00:54:51 -0600 (CST) From: Mike Silbersack To: Alan Cox In-Reply-To: <200312060545.hB65jWx4095325@repoman.freebsd.org> Message-ID: <20031206005341.D33930@odysseus.silby.com> References: <200312060545.hB65jWx4095325@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/vm vm_mmap.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Dec 2003 06:54:57 -0000 WHOOOOOOOOOOO HOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO I'm not sure if any has realized it yet, but I think that this may be our first actual deadlock condition. This means that we're actually locking things! Congrats, Mike "Silby" Silbersack On Fri, 5 Dec 2003, Alan Cox wrote: > alc 2003/12/05 21:45:32 PST > > FreeBSD src repository > > Modified files: > sys/vm vm_mmap.c > Log: > Fix a deadlock between vm_fault() and vm_mmap(): The expected lock ordering > between vm_map and vnode locks is that vm_map locks are acquired first. In > revision 1.150 mmap(2) was changed to pass a locked vnode into vm_mmap(). > This creates a lock-order reversal when vm_mmap() calls one of the vm_map > routines that acquires a vm_map lock. The solution implemented herein is > to release the vnode lock in mmap() before calling vm_mmap() and reacquire > this lock if necessary in vm_mmap(). > > Approved by: re (scottl) > Reviewed by: jeff, kan, rwatson > > Revision Changes Path > 1.174 +13 -4 src/sys/vm/vm_mmap.c >