Re: [RFC PATCH v1 13/50] Avoid some useless msecs/jiffies conversions

From: James Bottomley
Date: Sun Mar 29 2020 - 14:16:52 EST


On Sun, 2020-03-29 at 17:50 +0000, George Spelvin wrote:
> On Sun, Mar 29, 2020 at 07:13:33PM +0200, Takashi Iwai wrote:
> > On Sun, 29 Mar 2020 14:11:29 +0200, George Spelvin wrote:
> > > On Sun, Mar 29, 2020 at 09:52:23AM +0200, Takashi Iwai wrote:
> > > > I thought the compiler already optimizes to the constant
> > > > calculation
> > > > for the above case?
> > >
> > > It optimizes that if the entire argument, including "seconds", is
> > > a compile-time constant.
> > >
> > > However, given "msecs_to_jiffies(hdev->rpa_timeout * 1000);",
> > > the computatin is non-trivial.
> >
> > Fair enough. But it's still a question whether an open code X * HZ
> > is
> > good at all...
>
> I'm sorry, I don't understand what you mean by "good at all" here.
> The value computed is exactly the same.

I think he means what the compiler does with it.

We all assume that msecs_to_jiffies is properly optimized so there
should be no need to open code it like you're proposing. So firstly
can you produce the assembly that shows the worse output from
msecs_to_jiffies? If there is a problem, then we should be fixing it
in msecs_to_jiffies, not adding open coding.

James