lkml.org 
[lkml]   [2022]   [Aug]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v2 00/19] KVM hardware enable/disable reorganize
    Date
    From: Isaku Yamahata <isaku.yamahata@intel.com>

    This patch series is to implement the suggestion by Sean Christopherson [1]
    to reorganize enable/disable cpu virtualization feature by replacing
    the arch-generic current enable/disable logic with PM related hooks. And
    convert kvm/x86 to use new hooks.

    - Untable x86 hardware enable logic, snapshot MSRs for user return notifier,
    enabling cpu virtualization on cpu online and platform resume. and real
    enabling of CPU virtualization feature
    - Introduce hooks related to PM.
    - Convert kvm/x86 code to user those hooks.
    - Split out hardware enabling/disabling logic into a separate file. Compile
    it for non-x86 code. Once conversion of other KVM archs is done, this file
    can be dropped.
    - Delete cpus_hardware_enabled. 17/18 and 18/18

    [1] https://lore.kernel.org/kvm/YvU+6fdkHaqQiKxp@google.com/

    Changes from v1:
    - Add a patch "KVM: Rename and move CPUHP_AP_KVM_STARTING to ONLINE section"
    to make online/offline callback to run thread context to use mutex instead
    of spin lock
    - fixes pointed by Chao Gao

    Chao Gao (3):
    KVM: x86: Move check_processor_compatibility from init ops to runtime
    ops
    Partially revert "KVM: Pass kvm_init()'s opaque param to additional
    arch funcs"
    KVM: Rename and move CPUHP_AP_KVM_STARTING to ONLINE section

    Isaku Yamahata (16):
    KVM: x86: Drop kvm_user_return_msr_cpu_online()
    KVM: x86: Use this_cpu_ptr() instead of
    per_cpu_ptr(smp_processor_id())
    KVM: Drop kvm_count_lock and instead protect kvm_usage_count with
    kvm_lock
    KVM: Add arch hooks for PM events with empty stub
    KVM: x86: Move TSC fixup logic to KVM arch resume callback
    KVM: Add arch hook when VM is added/deleted
    KVM: Move out KVM arch PM hooks and hardware enable/disable logic
    KVM: kvm_arch.c: Remove _nolock post fix
    KVM: kvm_arch.c: Remove a global variable, hardware_enable_failed
    KVM: Do processor compatibility check on cpu online and resume
    KVM: x86: Duplicate arch callbacks related to pm events
    KVM: Eliminate kvm_arch_post_init_vm()
    KVM: x86: Delete kvm_arch_hardware_enable/disable()
    KVM: Add config to not compile kvm_arch.c
    RFC: KVM: x86: Remove cpus_hardware_enabled and related sanity check
    RFC: KVM: Remove cpus_hardware_enabled and related sanity check

    Documentation/virt/kvm/locking.rst | 14 +--
    arch/arm64/kvm/arm.c | 2 +-
    arch/mips/kvm/mips.c | 2 +-
    arch/powerpc/kvm/powerpc.c | 2 +-
    arch/riscv/kvm/main.c | 2 +-
    arch/s390/kvm/kvm-s390.c | 2 +-
    arch/x86/include/asm/kvm-x86-ops.h | 1 +
    arch/x86/include/asm/kvm_host.h | 2 +-
    arch/x86/kvm/Kconfig | 1 +
    arch/x86/kvm/svm/svm.c | 4 +-
    arch/x86/kvm/vmx/vmx.c | 14 +--
    arch/x86/kvm/x86.c | 192 +++++++++++++++++++++-------
    include/linux/cpuhotplug.h | 2 +-
    include/linux/kvm_host.h | 14 ++-
    virt/kvm/Kconfig | 3 +
    virt/kvm/Makefile.kvm | 3 +
    virt/kvm/kvm_arch.c | 126 +++++++++++++++++++
    virt/kvm/kvm_main.c | 193 +++++++++--------------------
    18 files changed, 373 insertions(+), 206 deletions(-)
    create mode 100644 virt/kvm/kvm_arch.c

    --
    2.25.1

    \
     
     \ /
      Last update: 2022-08-30 14:02    [W:3.430 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site