This is a minor iteration on Like's v3 to allow kvm_pmu_ops (the global variable, not the struct) be static. I ran the PMU unit tests and compiled, but otherwise it's untested. Strongly recommend waiting for Like to give a thumbs up before applying :-) [*] https://lore.kernel.org/all/20220307115920.51099-1-likexu@xxxxxxxxxxx Like Xu (4): KVM: x86: Move kvm_ops_static_call_update() to x86.c KVM: x86: Copy kvm_pmu_ops by value to eliminate layer of indirection KVM: x86: Move .pmu_ops to kvm_x86_init_ops and tag as __initdata KVM: x86: Use static calls to reduce kvm_pmu_ops overhead arch/x86/include/asm/kvm-x86-pmu-ops.h | 31 ++++++++++++ arch/x86/include/asm/kvm_host.h | 17 +------ arch/x86/kvm/pmu.c | 66 ++++++++++++++++++-------- arch/x86/kvm/pmu.h | 7 +-- arch/x86/kvm/svm/pmu.c | 2 +- arch/x86/kvm/svm/svm.c | 2 +- arch/x86/kvm/vmx/pmu_intel.c | 2 +- arch/x86/kvm/vmx/vmx.c | 2 +- arch/x86/kvm/x86.c | 21 +++++++- 9 files changed, 102 insertions(+), 48 deletions(-) create mode 100644 arch/x86/include/asm/kvm-x86-pmu-ops.h base-commit: 19164ad08bf668bca4f4bfbaacaa0a47c1b737a6 -- 2.35.1.1021.g381101b075-goog