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? 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? > >