Mark.Haywood wrote:

> Li, Aubrey wrote:
>> the function to place processor into deeper c-state is added.
>> 
>> I discussed with Bill about how to enter deeper c-state.
>> The ACPI documentation uses reading ACPI register address to enter,
>> while Intel Processor programming guides indicate MWAIT is prefered.
>> 
>> We know, to wake up an idle CPU, mwait just needs monitor memory
>> write. But "halt" and ACPI reading IO port need an IPI. Obviously,
>> mwait has the better performance.
>> 
>> So, here, I didn't see any advantage to follow ACPI on the
>> mwait-supported processors. The logic breaking ACPI rule in the
>> committed code is as follows: 
>> 
>> if (mwait is supported)
>>      use monitor/mwait to enter deep c-state
>> else
>>      reading IO port from ACPI
>> 
>> Of course this logic depends on the info reading from ACPI objects.
>> So disp_enq_thread doesn't need to be changed.
>> 
>> Any objects/thoughts?
> 
> What? No _PDC bit that says the OSPM has intimate knowledge of
> how to go
> into deeper C-states? ;-)
> 
>From ACPI spec, if the register address space id(from _CST) is returned
FFixedHW, we have to use native instruction to place processor into
deeper
c-state. If it's returned SystemIO, we should use reading IO port to
enter
deeper c-state. That's the way linux currently uses. But it's not a good
way, ;-)

Thanks,
-Aubrey

Reply via email to