On Mon, 2021-06-21 at 11:01 -0700, Jim Mattson wrote: > On Mon, Jan 18, 2021 at 2:22 AM Mohammed Gamal <mgamal@xxxxxxxxxx> > wrote: > > > > On Fri, 2021-01-15 at 16:08 -0800, Jim Mattson wrote: > > > On Thu, Sep 3, 2020 at 7:12 AM Mohammed Gamal <mgamal@xxxxxxxxxx> > > > wrote: > > > > > > > > This patch exposes allow_smaller_maxphyaddr to the user as a > > > > module > > > > parameter. > > > > > > > > Since smaller physical address spaces are only supported on > > > > VMX, > > > > the parameter > > > > is only exposed in the kvm_intel module. > > > > Modifications to VMX page fault and EPT violation handling will > > > > depend on whether > > > > that parameter is enabled. > > > > > > > > Also disable support by default, and let the user decide if > > > > they > > > > want to enable > > > > it. > > > > > > > > Signed-off-by: Mohammed Gamal <mgamal@xxxxxxxxxx> > > > > --- > > > > arch/x86/kvm/vmx/vmx.c | 15 ++++++--------- > > > > arch/x86/kvm/vmx/vmx.h | 3 +++ > > > > arch/x86/kvm/x86.c | 2 +- > > > > 3 files changed, 10 insertions(+), 10 deletions(-) > > > > > > > > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > > > > index 819c185adf09..dc778c7b5a06 100644 > > > > --- a/arch/x86/kvm/vmx/vmx.c > > > > +++ b/arch/x86/kvm/vmx/vmx.c > > > > @@ -129,6 +129,9 @@ static bool __read_mostly > > > > enable_preemption_timer = 1; > > > > module_param_named(preemption_timer, enable_preemption_timer, > > > > bool, S_IRUGO); > > > > #endif > > > > > > > > +extern bool __read_mostly allow_smaller_maxphyaddr; > > > > > > Since this variable is in the kvm module rather than the > > > kvm_intel > > > module, its current setting is preserved across "rmmod kvm_intel; > > > modprobe kvm_intel." That is, if set to true, it doesn't revert > > > to > > > false after "rmmod kvm_intel." Is that the intended behavior? > > > > > > > IIRC, this is because this setting was indeed not intended to be > > just > > VMX-specific, but since AMD has an issue with PTE accessed-bits > > being > > set by hardware and thus we can't yet enable this feature on it, it > > might make sense to move the variable to the kvm_intel module for > > now. > > Um... > > We do allow it for SVM, if NPT is not enabled. In fact, we set it > unconditionally in that case. See commit 3edd68399dc15 ("KVM: x86: > Add > a capability for GUEST_MAXPHYADDR < HOST_MAXPHYADDR support"). > > Perhaps it should be a module parameter for SVM as well? Hmmm, I think given how AMD CPUs' behavior with NPT enabled, maybe it'd actually be a better idea to move this entirely to VMX for the time being. And then maybe make it available again on AMD only if the behavior with NPT is changed. > > And, in any case, it would be nice if the parameter reverted to false > when the kvm_intel module is unloaded. > > > Paolo, what do you think? > > > > >