Re: [RFC PATCH 2/4] x86, mwaitt: introduce mwaitx idle with a configurable timer

Huang Rui
2015-05-21T14:38:13Z

On Wed, May 20, 2015 at 07:21:10PM +0800, Borislav Petkov wrote:
> On Wed, May 20, 2015 at 01:11:20PM +0200, Ingo Molnar wrote:
> > - MWAITX takes a 'timeout' parameter, but otherwise behaves exactly
> > like MWAIT: i.e. once idle it won't exit idle on its own
>
> Let me quote the commit message:
>
> "MWAITT, another name is MWAITX (MWAIT with extensions), has a
> configurable timer that causes MWAITX to exit on expiration."
>
> You need to set the second bit in ECX to enable the timer.
>
> I guess if you don't, then you get normal MWAIT but then you don't need
> the timeout either...

That's right.

This feature will expose on Family 15h, Model 60-6fh. Just check the
http://developer.amd.com, sorry, I don't know why APM still doesn't
update. But I can raise your question to HW guys.

>
> > - based on the 'timeout' hint, MWAITX can internally optimize how
> > deep sleep it enters. If the timeout is large it goes deep, if
> > it's small, it goes shallow.
>
> I haven't heard anything about handling the timeout this way and if it
> is not done this way, maybe Rui could forward this idea to hw people...
>

Actually, there is another use case on HSA stack. The timer is used
for synchronization between CPU and GPU. The CPU core will exit
waiting when GPU thread modifies the monitoring address or the timer
expires. :)

Thanks,
Rui