Re: [PATCH v3 05/12] arm: vdso: do calculations outside reader loops

From: Mark Rutland
Date: Mon Oct 30 2017 - 10:15:28 EST


On Fri, Oct 27, 2017 at 03:25:40PM -0700, Mark Salyzyn wrote:
> In variable timer reading loops, pick up just the values until all
> are synchronized, then outside of loop pick up cntvct and perform
> calculations to determine final offset, shifted and multiplied
> output value.

So this is all about moving the computation out of the loop, which
sounds sensible...

> +#ifdef ARCH_CLOCK_FIXED_MASK
> + static const u64 mask = ARCH_CLOCK_FIXED_MASK;
> +#else
> + u64 mask;
> +#endif

... but this wasn't mentioned, and ARCH_CLOCK_FIXED_MASK doesn't seem to
be defined as of this patch.

It looks like an orthogonal change that should be introduced in a
separate patch.

> +
> + typeof(((struct vdso_data *)vd)->xtime_clock_sec) sec;

Why do we need to do this typeof() magic?

Can't we settle on a consistent type across arches, or have a typedef in
a header?

Thanks,
Mark.