lkml.org 
[lkml]   [2017]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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

\
 
 \ /
  Last update: 2017-10-22 17:23    [W:0.083 / U:0.920 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site