From owner-svn-src-head@FreeBSD.ORG Tue Aug 13 16:29:55 2013 Return-Path: Delivered-To: svn-src-head@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 69C20837; Tue, 13 Aug 2013 16:29:55 +0000 (UTC) (envelope-from uspoerlein@gmail.com) Received: from mail-ob0-x22a.google.com (mail-ob0-x22a.google.com [IPv6:2607:f8b0:4003:c01::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0C56722F9; Tue, 13 Aug 2013 16:29:54 +0000 (UTC) Received: by mail-ob0-f170.google.com with SMTP id eh20so5643034obb.1 for ; Tue, 13 Aug 2013 09:29:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=iqQO9FTxzkUxjKOulMeStoukIXCzcDlUq7VU6t4kyPg=; b=o/3dN2oLLotmJM7hlknVkdk4OX9JTY1jeWpah/C+lkPi8EmvUsdiosqD8GgnwWPI6M G1w6gfOI69xVILas/CQAilyiCSxJLFEkp/eeAn2JYBv0KM+E2jkuB+2z1G+KZilyyjd1 5fgXJnYbxVSPofFEkjd99xmAvkJrGldtww5AczvFyeAPPgylbOql/hHkHjYuB4tlt3dH hNNfyeXpKkGlEhQqDXdpsHwfn9+OpfMjmTflKON39CK14RMqUMlAcKHK2OZv/AsFgB23 r4Gii2f7PlDpzYIxdbp1YG9q/PuY0jz1q4h4xMnQFXaV0gIPhwTdNgKmpeRw5z4qOexp FVLg== MIME-Version: 1.0 X-Received: by 10.182.27.74 with SMTP id r10mr1597871obg.63.1376411394323; Tue, 13 Aug 2013 09:29:54 -0700 (PDT) Sender: uspoerlein@gmail.com Received: by 10.76.27.135 with HTTP; Tue, 13 Aug 2013 09:29:54 -0700 (PDT) In-Reply-To: References: <201308091111.r79BBCbY095386@svn.freebsd.org> <20130813142230.GE54133@acme.spoerlein.net> Date: Tue, 13 Aug 2013 18:29:54 +0200 X-Google-Sender-Auth: n6TTzJ0H05PYKW4zzWXYuMzh8PM Message-ID: 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... From: =?UTF-8?Q?Ulrich_Sp=C3=B6rlein?= To: attilio@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 16:29:55 -0000 2013/8/13 Attilio Rao : > On Tue, Aug 13, 2013 at 4:22 PM, Ulrich Sp=C3=B6rlein w= rote: >> 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. > > Not true. > The same call existed also before with exactly the same semantic. > The trick there is that it is not important to check for the return > value because we are going to retry the operation anyway. > The code looks ok to me. Thanks for the explanation. The code shuffling meant that Coverity saw it as new code, that's what prompted me to email you. Cheers, Uli