On Saturday 02 February 2008 05:10, Zhao Yakui wrote:
> On Sat, 2008-02-02 at 02:39 -0500, Len Brown wrote:
> > On Monday 28 January 2008 00:55, Zhao Yakui wrote:
> > > Subject: ACPI : Update the t-state for every affected cpu when t-state is 
> > > changed
> > > >From : Zhao Yakui <[EMAIL PROTECTED]>
> > > 
> > > According to ACPI spec, the _TSD object provides T-state control cross
> > > logical processor dependency information to OSPM. So the t-state
> > > coordination should be considered when T-state for one cpu is changed.
> > > 
> > > According to ACPI spec, three types of coordination are defined.
> > > SW_ALL, SW_ANY and HW_ALL.
> > 
> > > SW_ALL: it means that OSPM needs to initiate T-state transition on 
> > > all processors in the domain. It is necessary to call throttling set 
> > > function
> > > for all affected cpus.
> > 
> > > SW_ANY: it means that OSPM may initiate T-state transition on any 
> > > processor in 
> > > the domain. 
> > 
> > > HW_ALL: Apec only says that hardware will perform the coordination and 
> > > doesn't 
> > > recommend how OSPM coordinate T-state among the affected cpus. So it is 
> > > treated
> > > as the type of SW_ALL. It means that OSPM needs to initiate t-state 
> > > transition
> > > on all the processors in the domain.
> > 
> > Not really. HW_ALL means that the OS can assume that the CPUs are 
> > independent,
> > and hardware will take care of any coordination needed. 
>  Hardware will be responsible for coordinating the state transition
> between multiple processors. But hardware should provide OSPM with a
> means to determine the actual state residency so that the correct state
> is entered. 

The OS has ACNT/MCNT to find the actual frequency.
We use it already in the P-state code to detect when the hardware does
soemthing funky with P-state, such as HW coordination,
TM1/TM2, or turbo mode.

> > 
> > ie. the OS should implement throttling changes on each CPU depending
> > only on that CPU's needs and not need to consider any effects on other CPUs.
> > 
> > This is not the same as SW_ALL, which tells us that all the CPUS in a domain
> > are _dependent_, and the OS must enforce that by writing the _same_ value
> > to each CPU. 
> > 
> > say you have a domain with 2 CPUS.
> > If it is HW_ALL and you throttle one cpu, then you are done. 
>    In this case , how to update the state of another cpu? Can it be
> treated as SW_ANY?  

That is the whole point of HW_ALL -- you don't have to worry
about the "other" CPU, you worry just about your local decisions
and the HW takes care of any dependencies.

> > if it is SW_ALL then if you want to throttle one cpu, then you must
> > also throttle the other. 
>    I agree. It is necessary to initiate the state transition for every
> affected cpu. 

thanks,
-Len

-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to