[PATCH 00/13] KVM monolithic v3

From: Andrea Arcangeli
Date: Mon Nov 04 2019 - 18:01:00 EST


Hello,

Here's the rebase of KVM monolithic on 5.4-rc6 after improving the
Kbuild as suggested in the v2 review.

This should have corrected also the non-x86 KVM builds (not verified
so it may not have full coverage yet, but I should have fixed all
issues reported by kbot so far).

The effect of the patchset is visible at the end of the below pdf. I
dropped CPUID so the results are still an exact match only for the
last two bench slides which are the only important ones in real life.

https://people.redhat.com/~aarcange/slides/2019-KVM-monolithic.pdf

https://git.kernel.org/pub/scm/linux/kernel/git/andrea/aa.git/log/?h=kvm-mono3

Andrea Arcangeli (13):
KVM: monolithic: x86: remove kvm.ko
KVM: monolithic: x86: convert the kvm_x86_ops and kvm_pmu_ops methods
to external functions
kvm: monolithic: fixup x86-32 build
KVM: monolithic: x86: handle the request_immediate_exit variation
KVM: monolithic: add more section prefixes
KVM: monolithic: x86: remove __exit section prefix from
machine_unsetup
KVM: monolithic: x86: remove __init section prefix from
kvm_x86_cpu_has_kvm_support
KVM: monolithic: remove exports
KVM: monolithic: x86: drop the kvm_pmu_ops structure
KVM: x86: optimize more exit handlers in vmx.c
KVM: retpolines: x86: eliminate retpoline from vmx.c exit handlers
KVM: retpolines: x86: eliminate retpoline from svm.c exit handlers
x86: retpolines: eliminate retpoline from msr event handlers

arch/powerpc/kvm/book3s.c | 2 +-
arch/x86/events/intel/core.c | 11 +
arch/x86/include/asm/kvm_host.h | 210 ++++++++-
arch/x86/kvm/Kconfig | 30 +-
arch/x86/kvm/Makefile | 5 +-
arch/x86/kvm/cpuid.c | 27 +-
arch/x86/kvm/hyperv.c | 8 +-
arch/x86/kvm/irq.c | 4 -
arch/x86/kvm/irq_comm.c | 2 -
arch/x86/kvm/kvm_cache_regs.h | 10 +-
arch/x86/kvm/lapic.c | 46 +-
arch/x86/kvm/mmu.c | 50 +-
arch/x86/kvm/mmu.h | 4 +-
arch/x86/kvm/mtrr.c | 2 -
arch/x86/kvm/pmu.c | 27 +-
arch/x86/kvm/pmu.h | 37 +-
arch/x86/kvm/pmu_amd.c | 43 +-
arch/x86/kvm/svm.c | 683 ++++++++++++++++-----------
arch/x86/kvm/trace.h | 4 +-
arch/x86/kvm/vmx/nested.c | 84 ++--
arch/x86/kvm/vmx/pmu_intel.c | 46 +-
arch/x86/kvm/vmx/vmx.c | 807 ++++++++++++++++++--------------
arch/x86/kvm/vmx/vmx.h | 39 +-
arch/x86/kvm/x86.c | 418 ++++++-----------
arch/x86/kvm/x86.h | 2 +-
include/linux/kvm_host.h | 8 +-
virt/kvm/arm/arm.c | 2 +-
virt/kvm/eventfd.c | 1 -
virt/kvm/kvm_main.c | 70 +--
29 files changed, 1440 insertions(+), 1242 deletions(-)