[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.1906141553070.1722@nanos.tec.linutronix.de>
Date: Fri, 14 Jun 2019 15:58:43 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Dmitry Safonov <dima@...sta.com>
cc: linux-kernel@...r.kernel.org, Andrei Vagin <avagin@...nvz.org>,
Adrian Reber <adrian@...as.de>,
Andy Lutomirski <luto@...nel.org>,
Arnd Bergmann <arnd@...db.de>,
Christian Brauner <christian.brauner@...ntu.com>,
Cyrill Gorcunov <gorcunov@...nvz.org>,
Dmitry Safonov <0x7f454c46@...il.com>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
"H. Peter Anvin" <hpa@...or.com>, Ingo Molnar <mingo@...hat.com>,
Jann Horn <jannh@...gle.com>, Jeff Dike <jdike@...toit.com>,
Oleg Nesterov <oleg@...hat.com>,
Pavel Emelyanov <xemul@...tuozzo.com>,
Shuah Khan <shuah@...nel.org>,
Vincenzo Frascino <vincenzo.frascino@....com>,
containers@...ts.linux-foundation.org, criu@...nvz.org,
linux-api@...r.kernel.org, x86@...nel.org,
Andrei Vagin <avagin@...il.com>
Subject: Re: [PATCHv4 15/28] x86/vdso: Add offsets page in vvar
On Wed, 12 Jun 2019, Dmitry Safonov wrote:
>
> +#ifdef CONFIG_TIME_NS
> +notrace static __always_inline void clk_to_ns(clockid_t clk, struct timespec *ts)
> +{
> + struct timens_offsets *timens = (struct timens_offsets *) &timens_page;
> + struct timespec64 *offset64;
> +
> + switch (clk) {
> + case CLOCK_MONOTONIC:
> + case CLOCK_MONOTONIC_COARSE:
> + case CLOCK_MONOTONIC_RAW:
> + offset64 = &timens->monotonic;
> + break;
> + case CLOCK_BOOTTIME:
> + offset64 = &timens->boottime;
> + default:
> + return;
> + }
> +
> + ts->tv_nsec += offset64->tv_nsec;
> + ts->tv_sec += offset64->tv_sec;
> + if (ts->tv_nsec >= NSEC_PER_SEC) {
> + ts->tv_nsec -= NSEC_PER_SEC;
> + ts->tv_sec++;
> + }
> + if (ts->tv_nsec < 0) {
> + ts->tv_nsec += NSEC_PER_SEC;
> + ts->tv_sec--;
> + }
I had to think twice why adding the offset (which can be negative) can
never result in negative time being returned. A comment explaining this
would be appreciated.
As I'm planning to merge Vincezos VDSO consolidation into 5.3, can you
please start to work on top of his series, which should be available as
final v7 next week hopefully.
Thanks,
tglx
Powered by blists - more mailing lists