Message ID | 20190928172323.14663-2-aarcange@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM monolithic v2 | expand |
On Sat, Sep 28, 2019 at 01:23:10PM -0400, Andrea Arcangeli wrote: > This is the first commit of a patch series that aims to replace the > modular kvm.ko kernel module with a monolithic kvm-intel/kvm-amd > model. This change has the only possible cons of wasting some disk > space in /lib/modules/. The pros are that it saves CPUS and some minor > RAM which are more scarse resources than disk space. > > The pointer to function virtual template model cannot provide any > runtime benefit because kvm-intel and kvm-amd can't be loaded at the > same time. > > This removes kvm.ko and it links and duplicates all kvm.ko objects to > both kvm-amd and kvm-intel. The KVM config option should be changed to a bool and its help text updated. Maybe something similar to the help for VIRTUALIZATION to make it clear that enabling KVM on its own does nothing. > > Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> > --- > arch/x86/kvm/Makefile | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kvm/Makefile b/arch/x86/kvm/Makefile > index 31ecf7a76d5a..68b81f381369 100644 > --- a/arch/x86/kvm/Makefile > +++ b/arch/x86/kvm/Makefile > @@ -12,9 +12,8 @@ kvm-y += x86.o mmu.o emulate.o i8259.o irq.o lapic.o \ > i8254.o ioapic.o irq_comm.o cpuid.o pmu.o mtrr.o \ > hyperv.o page_track.o debugfs.o > > -kvm-intel-y += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o vmx/evmcs.o vmx/nested.o > -kvm-amd-y += svm.o pmu_amd.o > +kvm-intel-y += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o vmx/evmcs.o vmx/nested.o $(kvm-y) > +kvm-amd-y += svm.o pmu_amd.o $(kvm-y) > > -obj-$(CONFIG_KVM) += kvm.o > obj-$(CONFIG_KVM_INTEL) += kvm-intel.o > obj-$(CONFIG_KVM_AMD) += kvm-amd.o
On Mon, Oct 14, 2019 at 06:31:44PM -0700, Sean Christopherson wrote: > On Sat, Sep 28, 2019 at 01:23:10PM -0400, Andrea Arcangeli wrote: > > This is the first commit of a patch series that aims to replace the > > modular kvm.ko kernel module with a monolithic kvm-intel/kvm-amd > > model. This change has the only possible cons of wasting some disk > > space in /lib/modules/. The pros are that it saves CPUS and some minor > > RAM which are more scarse resources than disk space. > > > > The pointer to function virtual template model cannot provide any > > runtime benefit because kvm-intel and kvm-amd can't be loaded at the > > same time. > > > > This removes kvm.ko and it links and duplicates all kvm.ko objects to > > both kvm-amd and kvm-intel. > > The KVM config option should be changed to a bool and its help text > updated. Maybe something similar to the help for VIRTUALIZATION to make > it clear that enabling KVM on its own does nothing. Making KVM a bool doesn't work well, keeping it a tristate and keying off KVM=y to force Intel or AMD (as done in the next patch) looks like the cleanest implementation. The help text should still be updated though. > > > > Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> > > --- > > arch/x86/kvm/Makefile | 5 ++--- > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > diff --git a/arch/x86/kvm/Makefile b/arch/x86/kvm/Makefile > > index 31ecf7a76d5a..68b81f381369 100644 > > --- a/arch/x86/kvm/Makefile > > +++ b/arch/x86/kvm/Makefile > > @@ -12,9 +12,8 @@ kvm-y += x86.o mmu.o emulate.o i8259.o irq.o lapic.o \ > > i8254.o ioapic.o irq_comm.o cpuid.o pmu.o mtrr.o \ > > hyperv.o page_track.o debugfs.o > > > > -kvm-intel-y += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o vmx/evmcs.o vmx/nested.o > > -kvm-amd-y += svm.o pmu_amd.o > > +kvm-intel-y += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o vmx/evmcs.o vmx/nested.o $(kvm-y) > > +kvm-amd-y += svm.o pmu_amd.o $(kvm-y) > > > > -obj-$(CONFIG_KVM) += kvm.o > > obj-$(CONFIG_KVM_INTEL) += kvm-intel.o > > obj-$(CONFIG_KVM_AMD) += kvm-amd.o
On 15/10/19 05:18, Sean Christopherson wrote: >> The KVM config option should be changed to a bool and its help text >> updated. Maybe something similar to the help for VIRTUALIZATION to make >> it clear that enabling KVM on its own does nothing. > Making KVM a bool doesn't work well, keeping it a tristate and keying off > KVM=y to force Intel or AMD (as done in the next patch) looks like the > cleanest implementation. Indeed, keeping the KVM option as tristate helps showing the right suboptions, similar to what Andrea did in patch 2. However, this patch already breaks the CONFIG_KVM_INTEL=y && CONFIG_KVM_AMD=y case I think, so it should be squashed with "KVM: monolithic: x86: disable linking vmx and svm at the same time into the kernel". > The help text should still be updated though. The patch doesn't change the fact that enabling KVM on its own does nothing, so the help text can be updated independently (patch welcome :)). Thanks, Paolo
diff --git a/arch/x86/kvm/Makefile b/arch/x86/kvm/Makefile index 31ecf7a76d5a..68b81f381369 100644 --- a/arch/x86/kvm/Makefile +++ b/arch/x86/kvm/Makefile @@ -12,9 +12,8 @@ kvm-y += x86.o mmu.o emulate.o i8259.o irq.o lapic.o \ i8254.o ioapic.o irq_comm.o cpuid.o pmu.o mtrr.o \ hyperv.o page_track.o debugfs.o -kvm-intel-y += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o vmx/evmcs.o vmx/nested.o -kvm-amd-y += svm.o pmu_amd.o +kvm-intel-y += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o vmx/evmcs.o vmx/nested.o $(kvm-y) +kvm-amd-y += svm.o pmu_amd.o $(kvm-y) -obj-$(CONFIG_KVM) += kvm.o obj-$(CONFIG_KVM_INTEL) += kvm-intel.o obj-$(CONFIG_KVM_AMD) += kvm-amd.o
This is the first commit of a patch series that aims to replace the modular kvm.ko kernel module with a monolithic kvm-intel/kvm-amd model. This change has the only possible cons of wasting some disk space in /lib/modules/. The pros are that it saves CPUS and some minor RAM which are more scarse resources than disk space. The pointer to function virtual template model cannot provide any runtime benefit because kvm-intel and kvm-amd can't be loaded at the same time. This removes kvm.ko and it links and duplicates all kvm.ko objects to both kvm-amd and kvm-intel. Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> --- arch/x86/kvm/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)