From owner-svn-src-user@freebsd.org  Fri Mar  9 16:42:34 2018
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94C83F37EF5
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Mar 2018 16:42:34 +0000 (UTC)
 (envelope-from markjdb@gmail.com)
Received: from mail-io0-x22d.google.com (mail-io0-x22d.google.com
 [IPv6:2607:f8b0:4001:c06::22d])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 27374804BD;
 Fri,  9 Mar 2018 16:42:34 +0000 (UTC)
 (envelope-from markjdb@gmail.com)
Received: by mail-io0-x22d.google.com with SMTP id p78so4148609iod.13;
 Fri, 09 Mar 2018 08:42:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:date:from:to:cc:subject:message-id:references:mime-version
 :content-disposition:in-reply-to:user-agent;
 bh=0xLxxbKgbWYnkebCFCxDKXSVDCpQA64G7HQEU0CMm90=;
 b=rHmFo3VFV2r0Ao+SBFkttxN+7S38CBS9RWiCQi3jNEoQWbVl+6kxRATi0e8V6bAZJM
 hUE0qVOsd04BMURbgithvLei7uGgz7vjIX0AAQ/JhXotbZb7nl2ST1RwHp2bS216j/7D
 b+SNa/iL4ikhU0PJjjHKVMeXYY85SNnKJNWqeI9tBkBzPJmPdNYtP+YQfoZma3fvzo0W
 vxnSq42XQ2viTERXdwSW1vOHIKTZmF7yIS04Y64joTAvQKxbN9VtAWdL5HqSCqANKdzA
 ViYKMS62PX4/yiwefNGU9urZX4YCaWtoWGwqBEf0BGqFx3VoLN0T7AxcBs3Mmk4pL1hT
 Xv4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:date:from:to:cc:subject:message-id
 :references:mime-version:content-disposition:in-reply-to:user-agent;
 bh=0xLxxbKgbWYnkebCFCxDKXSVDCpQA64G7HQEU0CMm90=;
 b=HHhlUwrcDhjnQ5x/OPZDVN93CIX/ntsnXIPlWgew7tOiSp1W9QWoFLE523S+aoCx2H
 L47Lt9m0/cEWbZuZlMo2Fme6O6KY1Wourfi8IkoWd9V2LcisH9bJoq5r9Pexq1xsRB2O
 4CbZFjwKwmgzE1WCqj8mamCAqgxhYV8+hlE0RHVt8rKg6zNXjEkil644ZKhJxylfA7l8
 f8FqNNPhCZO8wE6SYZ0EpVh/UDeIj2DGR9aqiA5I1sq4S4axL0mn1cld/XogA7SC7rwQ
 NEUMXA8QE3ZBnMjjK8mzP2w9Bvvj7y1TGVw73GCGwYJVfM96WSChrUlsm+DsoUrDxVZI
 nTOA==
X-Gm-Message-State: AElRT7GusESVrH5kGBalRZKA1tDDpuFeNxoRz7oCXnFX3vTXEuV7OtFT
 wKACVQVuHIRBWKwFc0W1wiU5VQ==
X-Google-Smtp-Source: AG47ELvcQcobA3/8BkBU+DMXDpmmLN1ePpJw2Rj68YxY7XA/7+JtmOBIFbuVQBcB7WUBInpGmz62gQ==
X-Received: by 10.107.189.3 with SMTP id n3mr2653449iof.207.1520613753212;
 Fri, 09 Mar 2018 08:42:33 -0800 (PST)
Received: from raichu (toroon0560w-lp130-01-174-88-76-226.dsl.bell.ca.
 [174.88.76.226])
 by smtp.gmail.com with ESMTPSA id i76sm1336872itf.18.2018.03.09.08.42.31
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 09 Mar 2018 08:42:32 -0800 (PST)
Sender: Mark Johnston <markjdb@gmail.com>
Date: Fri, 9 Mar 2018 11:42:30 -0500
From: Mark Johnston <markj@FreeBSD.org>
To: Jeff Roberson <jeff@FreeBSD.org>
Cc: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: Re: svn commit: r329894 - user/jeff/numa/sys/vm
Message-ID: <20180309164230.GD6174@raichu>
References: <201802240252.w1O2qeHk046648@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <201802240252.w1O2qeHk046648@repo.freebsd.org>
User-Agent: Mutt/1.9.3 (2018-01-21)
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Mar 2018 16:42:34 -0000

On Sat, Feb 24, 2018 at 02:52:40AM +0000, Jeff Roberson wrote:
> Author: jeff
> Date: Sat Feb 24 02:52:39 2018
> New Revision: 329894
> URL: https://svnweb.freebsd.org/changeset/base/329894
> 
> Log:
>   Fine grain lock reservations.  This permits us to free to a reservation
>   without the domain free lock held.  It further reduces the scope of the free
>   lock so that it now only protects the queues and allocation from the free count.
> 
> Modified: user/jeff/numa/sys/vm/vm_page.c
> ==============================================================================
> --- user/jeff/numa/sys/vm/vm_page.c	Sat Feb 24 02:08:18 2018	(r329893)
> +++ user/jeff/numa/sys/vm/vm_page.c	Sat Feb 24 02:52:39 2018	(r329894)
> [...]
> @@ -2595,15 +2577,18 @@ retry:
>  					KASSERT(m->dirty == 0,
>  					    ("page %p is dirty", m));
>  				}
> -				SLIST_INSERT_HEAD(&free, m, plinks.s.ss);
> +#if VM_NRESERVLEVEL > 0
> +				if (!vm_reserv_free_page(m))
> +#endif
> +					SLIST_INSERT_HEAD(&free, m,
> +					    plinks.s.ss);
>  			} else
>  				error = EBUSY;
>  unlock:
>  			VM_OBJECT_WUNLOCK(object);
>  		} else {
>  			MPASS(vm_phys_domain(m) == domain);
> -			vmd = VM_DOMAIN(domain);
> -			vm_domain_free_lock(vmd);
> +			vm_page_lock(m);
>  			order = m->order;
>  			if (order < VM_NFREEORDER) {
>  				/*
> @@ -2620,7 +2605,7 @@ unlock:
>  			else if (vm_reserv_is_page_free(m))
>  				order = 0;
>  #endif
> -			vm_domain_free_unlock(vmd);
> +			vm_page_unlock(m);
>  			if (order == VM_NFREEORDER)
>  				error = EINVAL;
>  		}

I think this part of the change is not quite right. The free lock
synchronizes access to the "order" field in addition to the reservation
structures.