From owner-svn-src-all@FreeBSD.ORG Fri Aug 9 20:45:28 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E828A551; Fri, 9 Aug 2013 20:45:28 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BE0AA2184; Fri, 9 Aug 2013 20:45:28 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id C01F8B95B; Fri, 9 Aug 2013 16:45:27 -0400 (EDT) From: John Baldwin To: Alan Cox Subject: Re: svn commit: r254150 - head/sys/vm Date: Fri, 9 Aug 2013 16:45:26 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p28; KDE/4.5.5; amd64; ; ) References: <201308091643.r79GhoWx023884@svn.freebsd.org> <655524DF-4DE9-428C-8A6A-C1A395489EF5@rice.edu> In-Reply-To: <655524DF-4DE9-428C-8A6A-C1A395489EF5@rice.edu> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201308091645.26895.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Fri, 09 Aug 2013 16:45:27 -0400 (EDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, "David E. O'Brien" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Aug 2013 20:45:29 -0000 On Friday, August 09, 2013 4:40:10 pm Alan Cox wrote: > > On Aug 9, 2013, at 1:34 PM, Alan Cox wrote: > > > > > On Aug 9, 2013, at 12:56 PM, John Baldwin wrote: > > > >> On Friday, August 09, 2013 12:43:50 pm David E. O'Brien wrote: > >>> Author: obrien > >>> Date: Fri Aug 9 16:43:50 2013 > >>> New Revision: 254150 > >>> URL: http://svnweb.freebsd.org/changeset/base/254150 > >>> > >>> Log: > >>> Add missing 'VPO_BUSY' from r254141 to fix kernel build break. > >>> > >>> Modified: > >>> head/sys/vm/vm_page.h > >> > >> This can't possibly be correct as r254138 just removed this flag. If it isn't > >> obvious how to fix the uses added back in r254141, then r254141 should be > >> reverted instead. > >> > >> Hmm, looking at the relevant bits of r254141, it doesn't look obvious: > >> > >> + /* Detach the old page from the resident tailq. */ > >> + TAILQ_REMOVE(&object->memq, mold, listq); > >> + vm_page_lock(mold); > > > > Replace the next four lines with > > > > vm_page_xunbusy(mold); > > > > On second thought, no, because it could lead to lock recursion. What about this. I think this matches the common idiom I've seen in other places. Index: vm_page.c =================================================================== --- vm_page.c (revision 254158) +++ vm_page.c (working copy) @@ -1202,12 +1202,9 @@ /* Detach the old page from the resident tailq. */ TAILQ_REMOVE(&object->memq, mold, listq); vm_page_lock(mold); - if (mold->oflags & VPO_BUSY) { - mold->oflags &= ~VPO_BUSY; - vm_page_flash(mold); - } mold->object = NULL; vm_page_unlock(mold); + vm_page_xunbusy(mold); /* Insert the new page in the resident tailq. */ if (mpred != NULL) -- John Baldwin