Re: [PATCH] clocksource_cyc2ns: avoid overflowing 64 bits

From: Chris Metcalf
Date: Wed Nov 16 2016 - 16:31:05 EST


On 11/16/2016 2:45 PM, John Stultz wrote:
On Wed, Nov 16, 2016 at 11:30 AM, Chris Metcalf <cmetcalf@xxxxxxxxxxxx> wrote:
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h
index 08398182f56e..5444429884b8 100644
--- a/include/linux/clocksource.h
+++ b/include/linux/clocksource.h
@@ -171,6 +171,10 @@ static inline u32 clocksource_hz2mult(u32 hz, u32
shift_constant)
*
* Converts cycles to nanoseconds, using the given mult and shift.
*
+ * The code is optimized for performance and not intended to work
+ * with absolute clocksource cycles, as it will easily overflow,
+ * but just intended for relative (delta) clocksource cycles.
+ *
* XXX - This could use some mult_lxl_ll() asm optimization
Just as a heads up, it seems your working against an older kernel, as
this didn't apply. Its simple enough to fix up, so I'll do so, but in
the future, please submit patches against something close to Linus
HEAD.

Oops, sorry; it wasn't version skew (I'm at v4.9-rc4) but whitespace damage.
I assumed if I just pasted the patch into Thunderbird it would work, since it had
no tabs. But bizarrely, if I look at the patch in the mailer, it shows a two-space
prefix, but when I save the email to a file, it has a three-space prefix. WTF?

--
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com