From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 14:22:34 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 CF7CCEA9; Tue, 13 Aug 2013 14:22:34 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from acme.spoerlein.net (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4E0592A69; Tue, 13 Aug 2013 14:22:34 +0000 (UTC) Received: from localhost (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) by acme.spoerlein.net (8.14.7/8.14.7) with ESMTP id r7DEMVdL042341 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 13 Aug 2013 16:22:31 +0200 (CEST) (envelope-from uqs@FreeBSD.org) Date: Tue, 13 Aug 2013 16:22:31 +0200 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= To: Attilio Rao Subject: Re: svn commit: r254138 - in head: share/man/man9 sys/amd64/amd64 sys/arm/arm sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/dev/agp sys/dev/drm2/i915 sys/dev/drm2/ttm sys/dev/md sys/fs/fuse sys/fs... Message-ID: <20130813142230.GE54133@acme.spoerlein.net> Mail-Followup-To: Ulrich =?utf-8?B?U3DDtnJsZWlu?= , Attilio Rao , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201308091111.r79BBCbY095386@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201308091111.r79BBCbY095386@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org 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: Tue, 13 Aug 2013 14:22:34 -0000 On Fri, 2013-08-09 at 11:11:12 +0000, Attilio Rao wrote: > Author: attilio > Date: Fri Aug 9 11:11:11 2013 > New Revision: 254138 > URL: http://svnweb.freebsd.org/changeset/base/254138 > > Log: > The soft and hard busy mechanism rely on the vm object lock to work. > Unify the 2 concept into a real, minimal, sxlock where the shared > acquisition represent the soft busy and the exclusive acquisition > represent the hard busy. > The old VPO_WANTED mechanism becames the hard-path for this new lock > and it becomes per-page rather than per-object. > The vm_object lock becames an interlock for this functionality: > it can be held in both read or write mode. > However, if the vm_object lock is held in read mode while acquiring > or releasing the busy state, the thread owner cannot make any > assumption on the busy state unless it is also busying it. > > Also: > - Add a new flag to directly shared busy pages while vm_page_alloc > and vm_page_grab are being executed. This will be very helpful > once these functions happen under a read object lock. > - Move the swapping sleep into its own per-object flag > > The KPI is heavilly changed this is why the version is bumped. > It is very likely that some VM ports users will need to change > their own code. > > Sponsored by: EMC / Isilon storage division > Discussed with: alc > Reviewed by: jeff, kib > Tested by: gavin, bapt (older version) > Tested by: pho, scottl The changes to sys/vm/vm_fault.c introduce a call to vm_page_sleep_if_busy() where the return code is not checked. The other 5 places in the tree check the return code, please fix this here too. It's CID 1062398, and I would encourage folks to get an account with scan.coverity.com and have an eye on newly found defects. Thanks! Uli