On Thu, May 21, 2015 at 04:15:54AM +0800, Borislav Petkov wrote:
> On Wed, May 20, 2015 at 09:12:15PM +0200, Thomas Gleixner wrote:
> > Which would be good enough for mdelay/udelay I think, but we'd need to
> > measure the time spend in MWAITT so we wont return early.
> > 
> > Something like this:
> 
> Yeah, with a check maybe:
> 
> >       delay = usec_to_tsc(delay_usec);
> 
>       if (delay > ((1 << 32) - 1)) {
>               mdelay(delay_usec);
>               return;
>       }
> 
> >       end = rdtsc() + delay;
> >       while (1) {
> 
> I guess
>               monitorx( ...);
> 
> first.
> 
> >             MWAITT(delay);
> >             now = rdtsc();
> >             if (end <= now)
> >                       break;
> >             delay = end - now;
> >     }
> > 
> > Now we'd need to add alternatives or some other mechanism to it to
> > make this conditionally for those machines.
> 
> alternative_call(mdelay, mdelayx, X86_FEATURE_MWAITT, /* no output */, 
> timeout);
> 
> Something like that maybe.
> 
> > Not sure if it's worth the trouble.
> 
> Could be a use case for MWAITX in the kernel!
> 

Looks like good use case. Boris, could we try to implement it?

Thanks,
Rui
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to