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 <yakui.zhao@xxxxxxxxx> > > > > > > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html