Re: [PATCH 1/3] clockevents: Retry programming min delta up to 10 times

From: Thomas Gleixner
Date: Thu Oct 19 2017 - 11:12:48 EST


On Thu, 19 Oct 2017, Martin Schwidefsky wrote:

> On Thu, 19 Oct 2017 15:29:28 +0200 (CEST)
> Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
> > On Thu, 19 Oct 2017, Matt Redfearn wrote:
> > > On 19/10/17 13:43, Thomas Gleixner wrote:
> > > > 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?
> > >
> > > That will set the target time to increasing multiples of min_delta_ns in the
> > > future, right?
> >
> > Yes, but without fiddling with min_delta_ns itself.
>
> Grumpf, more extra code for yet another piece of broken hardware
> I guess.

and virtualization. Oh wait.. the virt is the ultimate reference for broken
hardware...

> > > Sure, it should make it succeed faster - I'll make it like
> > > that. Are you OK with the arbitrarily chosen 10 retries?
> >
> > I lost my crystalball so I have to trust yours :)
>
> The alternative implementation would be to do the retries in
> the clockevent driver itself. Then that particular driver can
> choose the correct number of retries, no?

There is no correct number ever. All you can do is set an upper limit.

Thanks,

tglx