[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2/3] x86/levelling: Pass a vcpu rather than a domain to ctxt_switch_levelling()
A subsequent change needs to special-case OSXSAVE handling, which is per-vcpu rather than per-domain. No functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> --- xen/arch/x86/cpu/amd.c | 3 ++- xen/arch/x86/cpu/common.c | 4 ++-- xen/arch/x86/cpu/intel.c | 3 ++- xen/arch/x86/domain.c | 2 +- xen/include/asm-x86/processor.h | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c index 9c298f8..784fa40 100644 --- a/xen/arch/x86/cpu/amd.c +++ b/xen/arch/x86/cpu/amd.c @@ -203,9 +203,10 @@ static void __init noinline probe_masking_msrs(void) * used to context switch to the default host state (by the cpu bringup-code, * crash path, etc). */ -static void amd_ctxt_switch_levelling(const struct domain *nextd) +static void amd_ctxt_switch_levelling(const struct vcpu *next) { struct cpuidmasks *these_masks = &this_cpu(cpuidmasks); + const struct domain *nextd = next ? next->domain : NULL; const struct cpuidmasks *masks = (nextd && is_pv_domain(nextd) && nextd->arch.pv_domain.cpuidmasks) ? nextd->arch.pv_domain.cpuidmasks : &cpuidmask_defaults; diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c index 577a01f..a5cfe52 100644 --- a/xen/arch/x86/cpu/common.c +++ b/xen/arch/x86/cpu/common.c @@ -90,11 +90,11 @@ static const struct cpu_dev default_cpu = { }; static const struct cpu_dev *this_cpu = &default_cpu; -static void default_ctxt_switch_levelling(const struct domain *nextd) +static void default_ctxt_switch_levelling(const struct vcpu *next) { /* Nop */ } -void (* __read_mostly ctxt_switch_levelling)(const struct domain *nextd) = +void (* __read_mostly ctxt_switch_levelling)(const struct vcpu *next) = default_ctxt_switch_levelling; bool_t opt_cpu_info; diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c index fe4736e..3491638 100644 --- a/xen/arch/x86/cpu/intel.c +++ b/xen/arch/x86/cpu/intel.c @@ -151,9 +151,10 @@ static void __init probe_masking_msrs(void) * used to context switch to the default host state (by the cpu bringup-code, * crash path, etc). */ -static void intel_ctxt_switch_levelling(const struct domain *nextd) +static void intel_ctxt_switch_levelling(const struct vcpu *next) { struct cpuidmasks *these_masks = &this_cpu(cpuidmasks); + const struct domain *nextd = next ? next->domain : NULL; const struct cpuidmasks *masks; if (cpu_has_cpuid_faulting) { diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 1133ea2..7ca1b66 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -2130,7 +2130,7 @@ void context_switch(struct vcpu *prev, struct vcpu *next) load_segments(next); } - ctxt_switch_levelling(nextd); + ctxt_switch_levelling(next); } context_saved(prev); diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h index 487ae28..3e6e355 100644 --- a/xen/include/asm-x86/processor.h +++ b/xen/include/asm-x86/processor.h @@ -217,7 +217,7 @@ extern struct cpuinfo_x86 boot_cpu_data; extern struct cpuinfo_x86 cpu_data[]; #define current_cpu_data cpu_data[smp_processor_id()] -extern void (*ctxt_switch_levelling)(const struct domain *nextd); +extern void (*ctxt_switch_levelling)(const struct vcpu *next); extern u64 host_pat; extern bool_t opt_cpu_info; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |