On 10/16/08 21:13, Li, Aubrey wrote:
> Bill Holler wrote:
>
>   
>> Hi tesla-dev,
>>
>> We need to disable deep C-States when cpu_deep_idle is set
>> to disable in /etc/power.conf.  This happens at run time when
>> pmconf runs.  We also need to be able to re-enable deep C-States
>> at run time when cpu_deep_idle is set to enable or default
>> and pmconfig is run.
>>
>> cpudrv sets the per-cpu idle function pointer and global "wakeup"
>> pointer to functions that manage different C-States.  Setting all
>> cpu's idle_cpu function pointer and disp_enq_thread back to their
>> non-deep c-state function will allow full performance by
>> bypassing all of the deep C-State code.  At first it seems like
>> a simple matter of just doing idle_cpu = shadow_idle_cpu for
>> all cpus from the cpu_deep_idle callback function.
>>
>> However this does not work with _CST change notifications.
>> Does anyone have thoughts on this?
>>
>> Regards,
>> Bill
>>
>>     
>
> We can simply ignore _CST change notification when cpu_deep_idle
> is set(deep cstate is disabled)? and re-evaluate _CST in the callback
> function when deep cstate is enabled again.
>
> What do you think?
>
> Thanks,
> -Aubrey

Here is a follow up on this issue.

The _CST callback continues to run even when the deep-idle feature
(Deep C-States on x86) has been disabled with cpu_deep_idle
power.conf tunable.  The ACPI callbacks will continue to keep
C-State information up to date.  The _CST callback will continue
to set the per-cpu idle function pointer when the number of C-States
changes between 1 and more-than-one.

However the global idle function pointer does not change, so C-States
remain disabled when disabled by cpu_deep_idle.

Regards,
Bill


Reply via email to