The branch main has been updated by jhb:

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

commit acd02443a952b1f5412d35d03f081ad48bae34d7
Author:     John Baldwin <[email protected]>
AuthorDate: 2025-12-08 16:15:52 +0000
Commit:     John Baldwin <[email protected]>
CommitDate: 2025-12-08 16:16:14 +0000

    proc0_post: Clear relevant thread stats directly
    
    rufetch() has several other effects besides clearing these per-thread
    stats most of which are explicitly discarded by the subsequent calls
    to ruxreset().  Just clear the relevant stats directly instead.
    
    Reviewed by:    olce, kib, markj
    Differential Revision:  https://reviews.freebsd.org/D54050
---
 sys/kern/init_main.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index 8d1ee7b0fd99..4144297d674c 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -643,7 +643,6 @@ static void
 proc0_post(void *dummy __unused)
 {
        struct proc *p;
-       struct rusage ru;
        struct thread *td;
 
        /*
@@ -660,11 +659,15 @@ proc0_post(void *dummy __unused)
                }
                microuptime(&p->p_stats->p_start);
                PROC_STATLOCK(p);
-               rufetch(p, &ru);        /* Clears thread stats */
                ruxreset(&p->p_rux);
                FOREACH_THREAD_IN_PROC(p, td) {
-                       td->td_runtime = 0;
                        thread_lock(td);
+                       td->td_incruntime = 0;
+                       td->td_runtime = 0;
+                       td->td_pticks = 0;
+                       td->td_sticks = 0;
+                       td->td_iticks = 0;
+                       td->td_uticks = 0;
                        ruxreset(&td->td_rux);
                        thread_unlock(td);
                }

Reply via email to