Li, Aubrey wrote:
> Napanda.Pemmaiah wrote:
>
>   
>> Hi,
>>
>> Mark and I have modified the CPU driver to add basic T-state support
>> and we are providing a webrev (see bottom of this mail) for code
>> review feedback. The intent of the T-state support is simply to allow
>> the CPU driver
>> to receive _TPC change notifications as a way of throttling
>> the processor
>> speed. This is frequently done on some systems as a passive
>> cooling mechanism.
>> As part of this effort we've restructured the CPU driver. The
>> structure as it exists in Nevada today, doesn't lend itself to
>> supporting 
>> anything other
>> than P-states. Mark had already restructured the CPU driver in
>> the cpupm-gate
>> repository (where Aubrey and Bill are working on C-state
>> support) and we
>> reused much of that code.
>>
>>
>> 1) T-State support
>>
>>   ACPI T-States provide OSPM, the capability to successfully perform
>>   processor throttling. For more information about T-States, please
>>   refer to the section 8 of the ACPI specification document 3.0b
>>   available at http://www.acpi.info/spec.htm.
>>
>>   The current T-state implementation just provides support
>> for handling
>>   ACPI _TPC events(Throttling Present Capabilities). Unlike
>> the P-state
>>   support, where the CPU driver and PM framework monitor CPU
>>   utilization and change P-states dynamically based on that
>> utilization, 
>> the CPU driver
>>   will not do any such dynamic monitoring or state changing
>> of T-States.
>>
>>   When the CPU driver receives a ACPI _TPC event, it throttles the
>>   processor to the indicated level. Processor and BIOS need to support
>>   T-States for this feature to work. The required ACPI control objects
>>   are _PTC, _TSS, _TPC and _TSD. Details on these objects can
>> be obtained
>>   by referencing the ACPI Specification.
>>
>>   _TSS: Defines an array of supported throttling states for a
>> processor. 
>>
>>   _TSD: Defines the processors which share a T-state dependency (i.e.,
>>         which processors need to run at the same T-state).
>>
>>   _TPC: Defines the maximum allowable T-state the OSPM should
>> request (i.e.,
>>         sets a governor on which T-states the OS should request).
>>
>>   _PTC: Defines the mehtod by which the OSPM should request
>> T-state changes
>>         of the processor (i.e., write to an MSR or use system I/O).
>>
>>   These objects are analogous to the P-state related ACPI
>> objects, _PCT,
>>   _PSS, _PSD and _PPC.
>>     
>
> It might be interesting to add this info to kstat. it's convenient for
> debug
> and observation.
>   

Yeah, that's a possibility. I just hate to over run cpu_info with too 
much data.

>   
>> 2) Restructuring of the CPU driver
>>
>>   To incorporate the T-State support, the CPU driver had to
>> be restructured.
>>   Instead of just plugging in T-State related code into the
>> existing P-state
>>   biased CPU driver, we thought it would be better to do some minor
>>   restructuring of the CPU driver (specifically the x64
>> specific pieces) to
>>   give T-states (and later C-states) a more equal footing.
>>
>>   All CPU driver related code under uts/i86pc/io has been moved to
>>   uts/i86pc/io/cpudrv just for grouping puprposes. Also new
>> files vendor
>>   specific files have been created to allow for the different
>>   capabilities supported be each vendor.
>>     
>
> Hmm..., the new infrastureture looks much better.
> It looks like I have to re-write c-state driver.
> Which ON revisition/gate is this based on?
>   

I sort of continued some of the restructuring that I'd started in the 
cpupm-gate repository, so it should be pretty easy to merge the that 
repository when the time comes. I wouldn't bother rewriting anything 
until we integrate. At that point, I can probably merge the repository 
if you like. If I did the restructuring r

Our current T-state work is based off of onnv_91 at the moment.


>   
>> 3) Monitoring
>>
>>   One area that we have not addressed is monitoring. We're
>> not aware of
>>   T-state monitoring capabilities in other operating systems,
>> but think
>>   it might be a reasonable thing to provide. We're wondering
>> if PowerTOP
>>   might be modified to report on T-states? We'd appreciate
>> any thoughts
>>   that the folks working on PowerTOP might have on that front.
>>
>>     
>
> We definitely can add T-state support in PowerTOP.
> Please don't forget to add proper dtrace probes in the T-state
> driver as well as kstat info.
>
>   
I figure we'll need a probe for the current T-state. Do we need one for 
the list of supported T-states as well?
> Thanks,
> -Aubrey
> _______________________________________________
> tesla-dev mailing list
> tesla-dev at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/tesla-dev
>   


Reply via email to