Subjects that touch only arch/x86/kvm/vmx.c are usually prefixed with "[PATCH] KVM: VMX:". 2016-12-01 21:32-0500, Don Bowman: > Add an enable_tsc_scaling parameter to kvm > > Signed-off-by: Don Bowman <db@xxxxxxxxxxxx> > --- > > My system has what i thought were two identical processors (same > stepping ID etc). > However, bafflingly, one of them has the ability to do TSC scaling, > and one does not (as reported in the vmcs). Wow, the chip doesn't sound trustworthy. > This in turn causes kvm to give up entirely. > > I feel a better solution is to mask off this capability on the one processor. I like the global toggle better -- it is less code with more uses. > If enable_tsc_scaling is set false, the feature is ignored, and all > processors end up matching each other, enabling acceleration. > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > @@ -103,6 +103,9 @@ module_param_named(enable_shadow_vmcs, > enable_shadow_vmcs, bool, S_IRUGO); > static bool __read_mostly nested = 0; > module_param(nested, bool, S_IRUGO); > > +static bool __read_mostly enable_tsc_scaling = true; > +module_param(enable_tsc_scaling, bool, S_IRUGO); The "enable_" prefix is not needed, please do module_param_named(tsc_scaling, ...) > + > static u64 __read_mostly host_xss; > > static bool __read_mostly enable_pml = 1; > @@ -3449,6 +3452,8 @@ static __init int setup_vmcs_config(struct > vmcs_config *vmcs_conf) > vmcs_conf->pin_based_exec_ctrl = _pin_based_exec_control; > vmcs_conf->cpu_based_exec_ctrl = _cpu_based_exec_control; > vmcs_conf->cpu_based_2nd_exec_ctrl = _cpu_based_2nd_exec_control; > + if (!enable_tsc_scaling) > + vmcs_conf->cpu_based_2nd_exec_ctrl &= ~SECONDARY_EXEC_TSC_SCALING; Move this to vmx_secondary_exec_control(), where we disable all other features. You'll notice kvm_has_tsc_control in hardware_setup() when clearing the flag if it isn't supported by hardware, so I think your change would make sense as a x86 kvm module option based on kvm_has_tsc_control. Thanks. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html