lkml.org 
[lkml]   [2021]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] KVM: x86: VMX: Make smaller physical guest address space support user-configurable
    From
    Date
    On Mon, 2021-06-21 at 11:01 -0700, Jim Mattson wrote:
    > On Mon, Jan 18, 2021 at 2:22 AM Mohammed Gamal <mgamal@redhat.com>
    > 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@redhat.com>
    > > > 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@redhat.com>
    > > > > ---
    > > > >  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?
    > >
    > >
    >


    \
     
     \ /
      Last update: 2021-06-22 15:01    [W:2.171 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site