Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Sep 2025 03:06:14 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: b0474e148959 - main - geom: only set TDP_GEOM for user threads
Message-ID:  <202509090306.58936EYh093881@gitrepo.freebsd.org>

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

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

commit b0474e14895908f45c64158b0e558236923b8eb2
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-09-08 13:46:08 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-09-09 02:51:08 +0000

    geom: only set TDP_GEOM for user threads
    
    For kernel threads, ASTs are not handled at all, so there is no reason
    to expect that g_waitidle() would be called through AST scheduling.
    
    PR:     289204
    Reviewed by:    markj
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D52421
---
 sys/geom/geom_event.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/sys/geom/geom_event.c b/sys/geom/geom_event.c
index 341233a6ef47..ffd46db55416 100644
--- a/sys/geom/geom_event.c
+++ b/sys/geom/geom_event.c
@@ -347,6 +347,7 @@ static void
 g_post_event_ep_va(g_event_t *func, void *arg, int wuflag,
     struct g_event *ep, va_list ap)
 {
+	struct thread *td;
 	void *p;
 	u_int n;
 
@@ -366,8 +367,12 @@ g_post_event_ep_va(g_event_t *func, void *arg, int wuflag,
 	TAILQ_INSERT_TAIL(&g_events, ep, events);
 	mtx_unlock(&g_eventlock);
 	wakeup(&g_wait_event);
-	curthread->td_pflags |= TDP_GEOM;
-	ast_sched(curthread, TDA_GEOM);
+
+	td = curthread;
+	if ((td->td_pflags & TDP_KTHREAD) == 0) {
+		td->td_pflags |= TDP_GEOM;
+		ast_sched(td, TDA_GEOM);
+	}
 }
 
 void



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