Re: [RFC PATCH 03/30] cputime: Introduce nsecs_to_cputime64()

From: Martin Schwidefsky
Date: Mon Dec 01 2014 - 09:06:03 EST


On Fri, 28 Nov 2014 19:23:33 +0100
Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> This will be needed for the conversion of kernel stat to nsecs.
>
> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
> Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
> Cc: Paul Mackerras <paulus@xxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Rik van Riel <riel@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Tony Luck <tony.luck@xxxxxxxxx>
> Cc: Wu Fengguang <fengguang.wu@xxxxxxxxx>
> Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> ---
> include/linux/cputime.h | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/include/linux/cputime.h b/include/linux/cputime.h
> index f2eb2ee..a225ab9 100644
> --- a/include/linux/cputime.h
> +++ b/include/linux/cputime.h
> @@ -13,4 +13,14 @@
> usecs_to_cputime((__nsecs) / NSEC_PER_USEC)
> #endif
>
> +#ifndef nsecs_to_cputime
> +# define nsecs_to_cputime(__nsecs) \
> + usecs_to_cputime((__nsecs) / NSEC_PER_USEC)
> +#endif
> +
> +#ifndef nsecs_to_cputime64
> +# define nsecs_to_cputime64(__nsecs) \
> + ((__force cputime64_t) nsecs_to_cputime(__nsecs))
> +#endif
> +
> #endif /* __LINUX_CPUTIME_H */

For any architecture with a cputime_t better than a micro-second
the conversion to micro seconds degrades the precision a lot.

I would prefer to see the compile fail for e.g. s390 instead
of silently introducing *broken* cputime values.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/