From 5ff6ff2707b7b482efc9e172c87bd5c4106d9ed4 Mon Sep 17 00:00:00 2001 From: Flavio Cruz Date: Mon, 13 Mar 2023 01:42:12 -0400 Subject: Track task and thread time using time_value64_t. Changed kern/timer.c to use the higher precision time_value64_t. Of course, this won't suffer from the 2038 overflow but it does provide nanosecond precision (if gnumach ever uses a better timer) and moves us closer to only having time_value64_t. Message-Id: --- kern/timer.h | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'kern/timer.h') diff --git a/kern/timer.h b/kern/timer.h index 89790230..92259a2b 100644 --- a/kern/timer.h +++ b/kern/timer.h @@ -32,7 +32,7 @@ #if STAT_TIME /* * Statistical timer definitions - use microseconds in timer, seconds - * in high unit field. No adjustment needed to convert to time_value_t + * in high unit field. No adjustment needed to convert to time_value64_t * as a result. Service timers once an hour. */ @@ -56,7 +56,7 @@ /* * TIMER_ADJUST is used to adjust the value of a timer after it has been - * copied into a time_value_t. No adjustment is needed if high_bits is in + * copied into a time_value64_t. No adjustment is needed if high_bits is in * seconds. */ #undef TIMER_ADJUST @@ -128,24 +128,12 @@ extern void start_timer(timer_t); extern void timer_switch(timer_t); #endif /* STAT_TIME */ -extern void timer_read(timer_t, time_value_t *); -extern void thread_read_times(thread_t, time_value_t *, time_value_t *); +extern void timer_read(timer_t, time_value64_t *); +extern void thread_read_times(thread_t, time_value64_t *, time_value64_t *); extern unsigned timer_delta(timer_t, timer_save_t); extern void timer_normalize(timer_t); extern void timer_init(timer_t); -static inline void -thread_read_times_rpc(thread_t thread, - rpc_time_value_t *user_time_p, rpc_time_value_t *system_time_p) -{ - time_value_t user_p, system_p; - thread_read_times(thread, &user_p, &system_p); - user_time_p->seconds = user_p.seconds; - user_time_p->microseconds = user_p.microseconds; - system_time_p->seconds = system_p.seconds; - system_time_p->microseconds = system_p.microseconds; -} - #if STAT_TIME /* * Macro to bump timer values. @@ -199,8 +187,8 @@ void timer_init(timer_t this_timer); #if MACH_DEBUG void db_thread_read_times( thread_t thread, - time_value_t *user_time_p, - time_value_t *system_time_p); + time_value64_t *user_time_p, + time_value64_t *system_time_p); #endif -- cgit v1.2.3