Li, Aubrey wrote:
> Mark.Haywood wrote:
>
>   
>> Li, Aubrey wrote:
>>     
>>> Mark.Haywood wrote:
>>>
>>>
>>>       
>>>>>>> sigh, buggy BIOS. "0x1B" checking will load "SSDT" table. Maybe
>>>>>>> there is something else in the table need to be loaded to support
>>>>>>> deep c-state, although I saw _CST(C1ST, C2ST, C3ST, C4ST) are
>>>>>>> already there. 
>>>>>>>
>>>>>>> This issue should be fixed in 110 and later build due to the deep
>>>>>>> c-states support, by accident, :D. So no more work need to be
>>>>>>> done. 
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> Not necessarily. Only if cpu_deep_cstates_supported() returns
>>>>>> B_TRUE. 
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>> No, PDC setting doesn't need to do that check.
>>>>>
>>>>>
>>>>>           
>>>> Probably doesn't matter much, but besides the comment being wrong:
>>>>
>>>>
>>>> /*
>>>>         * If we support deep cstates on this processor, then set the
>>>>         * correct cstate_ops for the processor and enable
>>>> appropriate 
>>>>         * _PDC
>>>> bits.
>>>>         */
>>>>        mach_state->ms_cstate.cma_ops = &cpu_idle_ops;
>>>>        cpupm_intel_pdccap |= CPUPM_INTEL_PDC_C1_HALT |
>>>>            CPUPM_INTEL_PDC_C2C3_MP | CPUPM_INTEL_PDC_C1_FFH;
>>>>
>>>> I do wonder why we are setting the bits if we don't support it? And
>>>> unless I'm misreading the code, we even try to read the C-state data
>>>> even in the case where we don't support the processor?
>>>>
>>>>
>>>>         
>>> For development/observation purpose. We can see the cstate data in
>>> kstat. This helps to diagnose system. And it also helps us to make
>>> the cstate cache function robust. 
>>>
>>>       
>> Not sure I understand your point. We want to observe cstate data on
>> systems for which we don't support C-states?
>>     
>
> Cstate data including Cx power consumption, latency, which are interesting
> to the developer. And some systems have two C3, not duplicate, the two
> are valid, these info are useful.
>
> C-state is more complicated than P-state. It depends on HPET and only support
> on NHM now, and may not need HPET in future, or support pre-NHM platform by
> another time source, I'd like to separate the cstate data and c-state support.
>
> Is there a reason why we can't do that?
>
>   
>> Also, not sure how this makes the cstate cache function any more robust.
>>     
>
> Currently, if caching cstate data only works when cpu_deep_cstates_supported()
> returns true, we'll lost the chance to test it on the different kinds of 
> machine. For
> example, we can not find the panic issue reported several days ago on Toshiba 
> M9/M10. Does this make sense? :p
>
>   
>> We don't have to
>> execute cpu_deep_cstates_supported() as part of the caching function?
>> We're going to run it as part of the CPU PM initialization anyway.
>>     
>
> We just export the data for observation, like we export the turbo info, Is 
> there
> a reason why we can't do that? 
>
>   
>>> We also have "idle_cpu_no_deep_c" mechanism. If the user set it in
>>> kmdb during boot, he/she still can get deep cstate support without
>>> reboot the system. 
>>>
>>>       
>> Actually, it allows the user to disable deep cstate, not
>> enable it. So, I don't see its pertinence in this discussion. 
>>     
>
> Actually I often use this way to enable deep cstate when I did the testing,
> to save the reboot time, :)
>
>
>   
>> Besides which, I don't see how it makes any difference in deciding whether
>> or not to use cpu_deep_cstates_supported() to decide how to set the _PDC 
>> bits.
>>     
>
> No difference to set _PDC, but be different to install idle function.
> This is enough, I think. 
>
>   
>>> And, it helps to fix bugs to enable P-state, hehe, :D
>>>
>>>       
>> Yes. The BIOS bugs that exist because the BIOS developers don't
>> understand the _PDC bits.
>>     
>
>   
>>> Anyway, I didn't see a reason we can't do this in the current way.
>>>
>>>       
>> So effectively we *are* enabling all the _PDC bits all the
>> time (except
>> in the case where we know Solaris won't support SpeedStep). Sigh. The
>> _PDC was a bad idea. 
>>     
>
> As long as the OSPM has the ability/function to support all of what
> _PDC bits indicate, why we can't just enable all the bits?
>
>   
This might be the case post snv_110, but pre snv_110 since Deep C States 
were not supported
there was no reason to enable them right?

Anup
>> In any case ... Jason, SpeedStep should work for you starting
>> with build
>> 110.
>>
>>     
>
> hehe, :D
>
> -Aubrey
> _______________________________________________
> pm-discuss mailing list
> pm-discuss at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/pm-discuss
>   


Reply via email to