Liu, Jiang <> wrote: > Eric Saxe <> wrote: >> Hi Aubrey, >> >> Li, Aubrey wrote: >>> The policy seems not to be good. >>> It prevents the core from going into idle. When the new kthread is >>> idle thread, the policy will change the power state to low power >>> state, this calls speedstep power interface on IA platform, which is >>> implemented by xcall. the core may spend some time to grab highest >>> mutex here. >>> >> I'd like to see this done in a way that doesn't require the xcall. Is >> it possible to do the P-State transition such that one CPU (the >> current >> CPU), affects the whole P-state domain, eliminating the need for the >> xcall? >> >>> P-state policy implemented in cmt thread switch here seems not to be >>> a good idea. >> Are you saying this because a xcall would be needed? > It's dependent on the domain coordination method, currently there are three > kinds of domain coordination: > 1) Software all mode: to transit a domain into a specific P-state, software > needs to write to P-state control register on every CPU in the domain. > 2) Software any mode: to transit a domain into a specific P-state, software > only needs to write to P-state control registre on one of the CPUs in the > domain. > 3) Hardware coordination mode: each CPU in the domain writes what it wants to > P-state control register and hardware/BIOS will choose the correct P-state > for the domain. > so the answer to your question is it depends and a domain controller is > needed to support different coordination methods. > The three types are defined by ACPI and determined by BIOS option on some platforms. OSPM will get one type from ACPI table. Theoretically, solaris OSPM needs to support all of the three coordination type. So, in terms of this aspect, xcall is needed. Currently, only HW_ALL is assumed and the other two are ignored.
Thanks, -Aubrey
