[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] x86/msr: fix handling of MSR_IA32_PERF_{STATUS/CTL}
On 10.11.2020 11:32, Andrew Cooper wrote: > On 10/11/2020 08:03, Jan Beulich wrote: >> On 09.11.2020 18:38, Andrew Cooper wrote: >>> --- a/xen/include/xen/sched.h >>> +++ b/xen/include/xen/sched.h >>> @@ -1069,6 +1069,23 @@ extern enum cpufreq_controller { >>> FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen >>> } cpufreq_controller; >>> >>> +static always_inline bool is_cpufreq_controller(const struct domain *d) >>> +{ >>> + /* >>> + * A PV dom0 can be nominated as the cpufreq controller, instead of >>> using >>> + * Xen's cpufreq driver, at which point dom0 gets direct access to >>> certain >>> + * MSRs. >>> + * >>> + * This interface only works when dom0 is identity pinned and has the >>> same >>> + * number of vCPUs as pCPUs on the system. >>> + * >>> + * It would be far better to paravirtualise the interface. >>> + */ >>> + return (IS_ENABLED(CONFIG_PV) && >>> + (cpufreq_controller == FREQCTL_dom0_kernel) && >>> + is_pv_domain(d) && is_hardware_domain(d)); >>> +} >> IS_ENABLED(CONFIG_PV) is already part of is_pv_domain() and hence >> imo shouldn't be used explicitly here. > > Ah yes. Will drop. > >> Also, this being an x86 concept, is it really a good idea to put >> in xen/sched.h? I guess this builds on Arm just because of DCE >> from the IS_ENABLED(CONFIG_PV) (where afaict the one in >> is_pv_domain() will still do). (But yes, I do realize that >> cpufreq_controller itself gets declared in this file, so maybe >> better to do some subsequent cleanup.) > > I can't spot anywhere obviously better for it to live. We don't have a > common cpufreq.h, Not the most obvious place for it to live at, but xen/include/acpi/cpufreq/cpufreq.h ? Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |