From nobody Tue Oct 19 20:51:31 2021
X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 83485180CA1D;
	Tue, 19 Oct 2021 20:51:38 +0000 (UTC)
	(envelope-from cy.schubert@cschubert.com)
Received: from omta002.cacentral1.a.cloudfilter.net (omta002.cacentral1.a.cloudfilter.net [3.97.99.33])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "Client", Issuer "CA" (not verified))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4HYmBL2Ybzz4v5W;
	Tue, 19 Oct 2021 20:51:38 +0000 (UTC)
	(envelope-from cy.schubert@cschubert.com)
Received: from shw-obgw-4001a.ext.cloudfilter.net ([10.228.9.142])
	by cmsmtp with ESMTP
	id clgLmlwDpps7Pcw5BmMq4Z; Tue, 19 Oct 2021 20:51:37 +0000
Received: from spqr.komquats.com ([70.66.148.124])
	by cmsmtp with ESMTPA
	id cw59m5oJeXoZRcw5BmaK1Y; Tue, 19 Oct 2021 20:51:37 +0000
X-Authority-Analysis: v=2.4 cv=R8NgpfdX c=1 sm=1 tr=0 ts=616f2fd9
 a=Cwc3rblV8FOMdVN/wOAqyQ==:117 a=Cwc3rblV8FOMdVN/wOAqyQ==:17
 a=kj9zAlcOel0A:10 a=8gfv0ekSlNoA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8
 a=EkcXrb_YAAAA:8 a=uYMzMxvLi9Vu3-3Hz7EA:9 a=CjuIK1q_8ugA:10
 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 a=LK5xJRSDVpKd5WXXoEvA:22
Received: from slippy.cwsent.com (slippy [10.1.1.91])
	by spqr.komquats.com (Postfix) with ESMTPS id 7AC98554;
	Tue, 19 Oct 2021 13:51:34 -0700 (PDT)
Received: from slippy (localhost [127.0.0.1])
	by slippy.cwsent.com (8.16.1/8.16.1) with ESMTP id 19JKpV66059807;
	Tue, 19 Oct 2021 13:51:32 -0700 (PDT)
	(envelope-from Cy.Schubert@cschubert.com)
Message-Id: <202110192051.19JKpV66059807@slippy.cwsent.com>
X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1
Reply-to: Cy Schubert <Cy.Schubert@cschubert.com>
From: Cy Schubert <Cy.Schubert@cschubert.com>
X-os: FreeBSD
X-Sender: cy@cwsent.com
X-URL: http://www.cschubert.com/
To: John Baldwin <jhb@FreeBSD.org>
cc: Cy Schubert <Cy.Schubert@cschubert.com>,
        Konstantin Belousov <kib@FreeBSD.org>, src-committers@FreeBSD.org,
        dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject: Re: git: 7ae879b14a20 - main - kern_procctl(): convert the 
 function to be table-driven
In-reply-to: <91ebf9d8-5547-8570-18cb-26a58baf89ba@FreeBSD.org>
References: <202110192004.19JK4jN3069844@gitrepo.freebsd.org> 
 <202110192035.19JKZDqM026085@slippy.cwsent.com> <91ebf9d8-5547-8570-18cb-26a58baf89ba@FreeBSD.org>
Comments: In-reply-to John Baldwin <jhb@FreeBSD.org>
   message dated "Tue, 19 Oct 2021 13:40:26 -0700."
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Tue, 19 Oct 2021 13:51:31 -0700
X-CMAE-Envelope: MS4xfD0v5VugFG5qoKsPUtWx7tgCnj25LKn6HpsVyJb3mr+GIzTM0F4zbWln5yFv7soVDEFJRz0dE9j6if2UtEiHWOw0gGVbCxpdY1df7ShGde97tAvg8Apz
 Xx0Z8xF3GCNJO6iCziJpkm90i0qutlDtHVvD0NYb7hBy8QpA0+jqAQwX4VPGPUDeI1Nmw5Wp2MSs5B3K5RCR0tTCpS7plDCub4jVavoCoshzRvhozmlvRSGK
 5Ik9Y1VTUwjwf2rOMsK+zBOCnHRGZcd3t0V08ye72HckePIsHVMI/i92RkrY0GtOXxwzzlavhQ34wPw4te/yNYa3uom3AQKVAhxqQ5kSF62ZOdZh2e0grRxV
 veU12rrZ
X-Rspamd-Queue-Id: 4HYmBL2Ybzz4v5W
X-Spamd-Bar: ----
Authentication-Results: mx1.freebsd.org;
	none
X-Spamd-Result: default: False [-4.00 / 15.00];
	 REPLY(-4.00)[]
X-ThisMailContainsUnwantedMimeParts: N

In message <91ebf9d8-5547-8570-18cb-26a58baf89ba@FreeBSD.org>, John Baldwin 
wri
tes:
> On 10/19/21 1:35 PM, Cy Schubert wrote:
> > In message <202110192004.19JK4jN3069844@gitrepo.freebsd.org>, Konstantin
> > Belous
> > ov writes:
> >> The branch main has been updated by kib:
> >>
> >> URL: https://cgit.FreeBSD.org/src/commit/?id=7ae879b14a2086df521c59c4a379d
> 3a0
> >> 72e08bc6
> >>
> >> commit 7ae879b14a2086df521c59c4a379d3a072e08bc6
> >> Author:     Konstantin Belousov <kib@FreeBSD.org>
> >> AuthorDate: 2021-10-15 18:57:17 +0000
> >> Commit:     Konstantin Belousov <kib@FreeBSD.org>
> >> CommitDate: 2021-10-19 20:04:34 +0000
> >>
> >>      kern_procctl(): convert the function to be table-driven
> >>      
> >>      Reviewed by:    emaste, markj
> >>      Sponsored by:   The FreeBSD Foundation
> >>      MFC after:      1 week
> >>      Differential revision:  https://reviews.freebsd.org/D32513
> >> ---
> >>   sys/kern/kern_procctl.c | 123 +++++++++++++++++++++++++++---------------
> ----
> >> --
> >>   1 file changed, 69 insertions(+), 54 deletions(-)
> >>
> >> diff --git a/sys/kern/kern_procctl.c b/sys/kern/kern_procctl.c
> >> index eb36f0822938..90c5e63c7219 100644
> >> --- a/sys/kern/kern_procctl.c
> >> +++ b/sys/kern/kern_procctl.c
> >> @@ -949,7 +957,14 @@ kern_procctl(struct thread *td, idtype_t idtype, id_t
>  id
> >> , int com, void *data)
> >>   		error = EINVAL;
> >>   		break;
> >>   	}
> >> -	if (tree_locked)
> >> -		sx_unlock(&proctree_lock);
> >> +
> >> +	switch (cmd_info->lock_tree) {
> >> +	case SA_XLOCKED:
> >> +		sx_xunlock(&proctree_lock);
> >> +		break;
> >> +	case SA_SLOCKED:
> >> +		sx_sunlock(&proctree_lock);
> >> +		break;
> >> +	}
> >>   	return (error);
> >>   }
> >>
> > 
> > Should SA_* in fact be LA_*? SA_* in sys/sx.h assumes INVARIANTS whereas
> > LA_* in sys/lock.h has no such requirement.
>
> Both are for "assertions".  The LA_* constants aren't really public but are
> the values used for witness_assert() that various foo_assert() routines in
> locking APIs (mtx_assert/sx_assert, etc.) can use.  For locking APIs, the
> type-specific macros are the ones you use, e.g. SA_* with sx_assert().
>
> Given that, SA_* is the closest match here.

We'll need some #ifdefs for non-INVARIANTS built kernels, as it stands 
buildkernel is broken.


-- 
Cheers,
Cy Schubert <Cy.Schubert@cschubert.com>
FreeBSD UNIX:  <cy@FreeBSD.org>   Web:  https://FreeBSD.org
NTP:           <cy@nwtime.org>    Web:  https://nwtime.org

	The need of the many outweighs the greed of the few.