diff options
author | Flavio Cruz <flaviocruz@gmail.com> | 2023-03-13 01:42:12 -0400 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-03-13 20:42:03 +0100 |
commit | 5ff6ff2707b7b482efc9e172c87bd5c4106d9ed4 (patch) | |
tree | 68abe2ad4b92c47deebb23bdcd54eb359d9921a9 /kern/timer.h | |
parent | f72cc8c81afe03667cc1ee70169ed343a40f4578 (diff) | |
download | gnumach-5ff6ff2707b7b482efc9e172c87bd5c4106d9ed4.tar.gz gnumach-5ff6ff2707b7b482efc9e172c87bd5c4106d9ed4.tar.bz2 gnumach-5ff6ff2707b7b482efc9e172c87bd5c4106d9ed4.zip |
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: <ZA63tGcv3bETUJFJ@jupiter.tail36e24.ts.net>
Diffstat (limited to 'kern/timer.h')
-rw-r--r-- | kern/timer.h | 24 |
1 files changed, 6 insertions, 18 deletions
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 |