[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <59c7f897-4280-5f45-81a1-45b070377c22@acm.org>
Date: Mon, 18 Jun 2018 12:39:06 -0500
From: Corey Minyard <minyard@....org>
To: Arnd Bergmann <arnd@...db.de>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: y2038@...ts.linaro.org, openipmi-developer@...ts.sourceforge.net,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ipmi: Change to ktime_get_ts64()
On 06/18/2018 09:27 AM, Arnd Bergmann wrote:
> getnstimeofday64() is deprecated because of the inconsistent naming,
> it is only a wrapper around ktime_get_real_ts64() now, which could be
> used as a direct replacement.
>
> However, it is generally better to use CLOCK_MONOTONIC timestamps
> where possible, to avoid glitches with a concurrent settimeofday()
> or leap second.
>
> The uses in ipmi are either for debugging prints or for comparing against
> a prior timestamp, so using a monotonic ktime_get_ts64() is probably
> best here.
This is definitely better. Queued for 4.19 (or whatever it will be called).
Thanks,
-corey
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
> ---
> drivers/char/ipmi/ipmi_si_intf.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
> index ad353be871bf..fb19c796f0fa 100644
> --- a/drivers/char/ipmi/ipmi_si_intf.c
> +++ b/drivers/char/ipmi/ipmi_si_intf.c
> @@ -269,7 +269,7 @@ void debug_timestamp(char *msg)
> {
> struct timespec64 t;
>
> - getnstimeofday64(&t);
> + ktime_get_ts64(&t);
> pr_debug("**%s: %lld.%9.9ld\n", msg, (long long) t.tv_sec, t.tv_nsec);
> }
> #else
> @@ -961,12 +961,12 @@ static inline int ipmi_thread_busy_wait(enum si_sm_result smi_result,
> if (max_busy_us == 0 || smi_result != SI_SM_CALL_WITH_DELAY)
> ipmi_si_set_not_busy(busy_until);
> else if (!ipmi_si_is_busy(busy_until)) {
> - getnstimeofday64(busy_until);
> + ktime_get_ts64(busy_until);
> timespec64_add_ns(busy_until, max_busy_us*NSEC_PER_USEC);
> } else {
> struct timespec64 now;
>
> - getnstimeofday64(&now);
> + ktime_get_ts64(&now);
> if (unlikely(timespec64_compare(&now, busy_until) > 0)) {
> ipmi_si_set_not_busy(busy_until);
> return 0;
Powered by blists - more mailing lists