[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <6939242dcfff1_20cb5100c3@dwillia2-mobl4.notmuch>
Date: Wed, 10 Dec 2025 16:41:33 +0900
From: <dan.j.williams@...el.com>
To: Sean Christopherson <seanjc@...gle.com>, <dan.j.williams@...el.com>
CC: Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
Borislav Petkov <bp@...en8.de>, Dave Hansen <dave.hansen@...ux.intel.com>,
<x86@...nel.org>, Kiryl Shutsemau <kas@...nel.org>, Paolo Bonzini
<pbonzini@...hat.com>, <linux-kernel@...r.kernel.org>,
<linux-coco@...ts.linux.dev>, <kvm@...r.kernel.org>, Chao Gao
<chao.gao@...el.com>
Subject: Re: [PATCH v2 2/7] KVM: x86: Extract VMXON and EFER.SVME enablement
to kernel
Sean Christopherson wrote:
> On Sat, Dec 06, 2025, dan.j.williams@...el.com wrote:
> > Sean Christopherson wrote:
> > > @@ -694,9 +696,6 @@ static void drop_user_return_notifiers(void)
> > > kvm_on_user_return(&msrs->urn);
> > > }
> > >
> > > -__visible bool kvm_rebooting;
> > > -EXPORT_SYMBOL_FOR_KVM_INTERNAL(kvm_rebooting);
> >
> > ...a short stay for this symbol in kvm/x86.c? It raises my curiosity why
> > patch1 is separate.
>
> Because it affects non-x86 architectures. It should be a complete nop, but I
> wanted to isolate what I could.
Ok.
[..]
> > > +static cpu_emergency_virt_cb __rcu *kvm_emergency_callback;
> >
> > Hmm, why kvm_ and not virt_?
>
> I was trying to capture that this callback can _only_ be used by KVM, because
> KVM is the only in-tree hypervisor. That's also why the exports are only for
> KVM (and will use EXPORT_SYMBOL_FOR_KVM() when I post the next version).
Oh, true, that makes sense.
> > [..]
> > > +#if IS_ENABLED(CONFIG_KVM_INTEL)
> > > +static DEFINE_PER_CPU(struct vmcs *, root_vmcs);
> >
> > Perhaps introduce a CONFIG_INTEL_VMX for this? For example, KVM need not
> > be enabled if all one wants to do is use TDX to setup PCIe Link
> > Encryption. ...or were you expecting?
> >
> > #if IS_ENABLED(CONFIG_KVM_INTEL) || IS_ENABLED(...<other VMX users>...)
>
> I don't think we need anything at this time. INTEL_TDX_HOST depends on KVM_INTEL,
> and so without a user that needs VMXON without KVM_INTEL, I think we're good as-is.
>
> config INTEL_TDX_HOST
> bool "Intel Trust Domain Extensions (TDX) host support"
> depends on CPU_SUP_INTEL
> depends on X86_64
> depends on KVM_INTEL
...but INTEL_TDX_HOST, it turns out, does not have any functional
dependencies on KVM_INTEL. At least, not since I last checked. Yes, it
would be silly and result in dead code today to do a build with:
CONFIG_INTEL_TDX_HOST=y
CONFIG_KVM_INTEL=n
However, when the TDX Connect support arrives you could have:
CONFIG_INTEL_TDX_HOST=y
CONFIG_KVM_INTEL=n
CONFIG_TDX_HOST_SERVICES=y
Where "TDX Host Services" is a driver for PCIe Link Encryption and TDX
Module update. Whether such configuration freedom has any practical
value is a separate question.
I am ok if the answer is, "wait until someone shows up who really wants
PCIe Link Encryption without KVM".
Powered by blists - more mailing lists