time/sched_clock: Use Hz as the unit for clock rate reporting below 4kHz
authorMaciej W. Rozycki <macro@orcam.me.uk>
Sun, 24 Apr 2022 11:47:26 +0000 (12:47 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 2 May 2022 12:29:04 +0000 (14:29 +0200)
The kernel uses kHz as the unit for clock rates reported between 1MHz
(inclusive) and 4MHz (exclusive), e.g.:

 sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns

This reduces the amount of data lost due to rounding, but hasn't been
replicated for the kHz range when support was added for proper reporting of
sub-kHz clock rates.  Take the same approach for rates between 1kHz
(inclusive) and 4kHz (exclusive), which makes it consistent.

Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/alpine.DEB.2.21.2204240106380.9383@angie.orcam.me.uk
kernel/time/sched_clock.c

index ee07f3ac1e5b2ef4870ba54cf84d4797808c8bf1..4a95c0be9daf534939977d082015fcff27fe6dc2 100644 (file)
@@ -203,7 +203,7 @@ sched_clock_register(u64 (*read)(void), int bits, unsigned long rate)
                r = DIV_ROUND_CLOSEST(r, 1000000);
                r_unit = 'M';
        } else {
-               if (r >= 1000) {
+               if (r >= 4000) {
                        r = DIV_ROUND_CLOSEST(r, 1000);
                        r_unit = 'k';
                } else {