[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.20.1710191435280.1971@nanos>
Date: Thu, 19 Oct 2017 14:43:25 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Matt Redfearn <matt.redfearn@...s.com>
cc: Daniel Lezcano <daniel.lezcano@...aro.org>,
James Hogan <james.hogan@...s.com>, linux-mips@...ux-mips.org,
James Hogan <jhogan@...nel.org>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/3] clockevents: Retry programming min delta up to 10
times
On Thu, 19 Oct 2017, Matt Redfearn wrote:
> unsigned long long clc;
> int64_t delta;
> + int i;
>
> - delta = dev->min_delta_ns;
> - dev->next_event = ktime_add_ns(ktime_get(), delta);
> + for (i = 0;;) {
Bah. What's wrong with
for (i = 0; i < 10; i++) {
....
if (!(dev->set_next_event((unsigned long) clc, dev))
return 0;
}
return -ETIME;
Hmm?
> + delta = dev->min_delta_ns;
> + dev->next_event = ktime_add_ns(ktime_get(), delta);
>
> - if (clockevent_state_shutdown(dev))
> - return 0;
> + if (clockevent_state_shutdown(dev))
> + return 0;
>
> - dev->retries++;
> - clc = ((unsigned long long) delta * dev->mult) >> dev->shift;
> - return dev->set_next_event((unsigned long) clc, dev);
> + dev->retries++;
> + clc = ((unsigned long long) delta * dev->mult) >> dev->shift;
I'd rather make that:
delta = 0;
for (i = 0; i < 10; i++) {
delta += dev->min_delta_ns;
dev->next_event = ktime_add_ns(ktime_get(), delta);
clc = .....
.....
That makes it more likely to succeed fast. Hmm?
Thanks,
tglx
Powered by blists - more mailing lists