From 74f8e63a104485f17205e2a3e446e00f968c324c Mon Sep 17 00:00:00 2001 From: phk Date: Wed, 8 Feb 2006 08:09:17 +0000 Subject: Simplify system time accounting for profiling. Rename struct thread's td_sticks to td_pticks, we will need the other name for more appropriately named use shortly. Reduce it from uint64_t to u_int. Clear td_pticks whenever we enter the kernel instead of recording its value as reference for userret(). Use the absolute value of td->pticks in userret() and eliminate third argument. --- sys/kern/subr_trap.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'sys/kern/subr_trap.c') diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index f4e0a53..686f613 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -74,10 +74,7 @@ __FBSDID("$FreeBSD$"); * MPSAFE */ void -userret(td, frame, oticks) - struct thread *td; - struct trapframe *frame; - u_int oticks; +userret(struct thread *td, struct trapframe *frame) { struct proc *p = td->td_proc; @@ -127,10 +124,8 @@ userret(td, frame, oticks) * Charge system time if profiling. */ if (p->p_flag & P_PROFIL) { - quad_t ticks; - ticks = td->td_sticks - oticks; - addupc_task(td, TRAPF_PC(frame), (u_int)ticks * psratio); + addupc_task(td, TRAPF_PC(frame), td->td_pticks * psratio); } /* @@ -153,7 +148,6 @@ ast(struct trapframe *framep) struct proc *p; struct ksegrp *kg; struct rlimit rlim; - u_int sticks; int sflag; int flags; int sig; @@ -173,7 +167,7 @@ ast(struct trapframe *framep) mtx_assert(&Giant, MA_NOTOWNED); mtx_assert(&sched_lock, MA_NOTOWNED); td->td_frame = framep; - sticks = td->td_sticks; + td->td_pticks = 0; if ((p->p_flag & P_SA) && (td->td_mailbox == NULL)) thread_user_enter(td); @@ -276,6 +270,6 @@ ast(struct trapframe *framep) PROC_UNLOCK(p); } - userret(td, framep, sticks); + userret(td, framep); mtx_assert(&Giant, MA_NOTOWNED); } -- cgit v1.1