diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2025-12-08 16:15:52 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2025-12-08 16:16:14 +0000 |
| commit | acd02443a952b1f5412d35d03f081ad48bae34d7 (patch) | |
| tree | 8b76e1863bae4b050dbe7cd293beab064b5b96dd | |
| parent | dafe50ebd874ca3ccd5908c441cee9f478c501f0 (diff) | |
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
| -rw-r--r-- | sys/kern/init_main.c | 9 |
1 files 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); } |
