Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Mar 2023 09:19:09 GMT
From:      Mateusz Guzik <mjg@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 80cf427b8dc1 - main - proc: shave a lock trip on exit if possible
Message-ID:  <202303290919.32T9J9Z5085150@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by mjg:

URL: https://cgit.FreeBSD.org/src/commit/?id=80cf427b8dc18bc5c26fed6d07bc5c5eda4545b0

commit 80cf427b8dc18bc5c26fed6d07bc5c5eda4545b0
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-03-29 08:45:46 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-03-29 09:19:03 +0000

    proc: shave a lock trip on exit if possible
    
    ... which happens to be vast majority of the time
---
 sys/kern/kern_exit.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index 3f64343aea0e..a92d5cc0f642 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -477,9 +477,11 @@ exit1(struct thread *td, int rval, int signo)
 	sx_xunlock(&allproc_lock);
 
 	sx_xlock(&proctree_lock);
-	PROC_LOCK(p);
-	p->p_flag &= ~(P_TRACED | P_PPWAIT | P_PPTRACE);
-	PROC_UNLOCK(p);
+	if ((p->p_flag & (P_TRACED | P_PPWAIT | P_PPTRACE)) != 0) {
+		PROC_LOCK(p);
+		p->p_flag &= ~(P_TRACED | P_PPWAIT | P_PPTRACE);
+		PROC_UNLOCK(p);
+	}
 
 	/*
 	 * killjobc() might drop and re-acquire proctree_lock to



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202303290919.32T9J9Z5085150>