All of lore.kernel.org
 help / color / mirror / Atom feed
From: isaku.yamahata@intel.com
To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: isaku.yamahata@intel.com, isaku.yamahata@gmail.com,
	Paolo Bonzini <pbonzini@redhat.com>,
	Sean Christopherson <seanjc@google.com>,
	Kai Huang <kai.huang@intel.com>, Chao Gao <chao.gao@intel.com>,
	Will Deacon <will@kernel.org>
Subject: [RFC PATCH 00/18] KVM hardware enable/disable reorganize
Date: Fri, 19 Aug 2022 23:00:06 -0700	[thread overview]
Message-ID: <cover.1660974106.git.isaku.yamahata@intel.com> (raw)

From: Isaku Yamahata <isaku.yamahata@intel.com>

The purpose of this patch series is to get feedback before going further.
e.g. rebasing TDX KVM series, etc.

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/

Chao Gao (2):
  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"

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
  KVM: x86: Remove cpus_hardware_enabled and related sanity check
  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                 | 184 ++++++++++++++++++++++-------
 include/linux/kvm_host.h           |  14 ++-
 virt/kvm/Kconfig                   |   3 +
 virt/kvm/Makefile.kvm              |   3 +
 virt/kvm/kvm_arch.c                | 119 +++++++++++++++++++
 virt/kvm/kvm_main.c                | 177 ++++++++-------------------
 17 files changed, 349 insertions(+), 197 deletions(-)
 create mode 100644 virt/kvm/kvm_arch.c

-- 
2.25.1


             reply	other threads:[~2022-08-20  6:00 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-20  6:00 isaku.yamahata [this message]
2022-08-20  6:00 ` [RFC PATCH 01/18] KVM: x86: Drop kvm_user_return_msr_cpu_online() isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 02/18] KVM: x86: Use this_cpu_ptr() instead of per_cpu_ptr(smp_processor_id()) isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 03/18] KVM: Drop kvm_count_lock and instead protect kvm_usage_count with kvm_lock isaku.yamahata
2022-08-23  2:26   ` Chao Gao
2022-08-23  8:40     ` Isaku Yamahata
2022-08-20  6:00 ` [RFC PATCH 04/18] KVM: Add arch hooks for PM events with empty stub isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 05/18] KVM: x86: Move TSC fixup logic to KVM arch resume callback isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 06/18] KVM: Add arch hook when VM is added/deleted isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 07/18] KVM: Move out KVM arch PM hooks and hardware enable/disable logic isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 08/18] KVM: kvm_arch.c: Remove _nolock post fix isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 09/18] KVM: kvm_arch.c: Remove a global variable, hardware_enable_failed isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 10/18] KVM: x86: Move check_processor_compatibility from init ops to runtime ops isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 11/18] Partially revert "KVM: Pass kvm_init()'s opaque param to additional arch funcs" isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 12/18] KVM: Do processor compatibility check on cpu online and resume isaku.yamahata
2022-08-23  7:50   ` Chao Gao
2022-08-23  8:08     ` Isaku Yamahata
2022-08-20  6:00 ` [RFC PATCH 13/18] KVM: x86: Duplicate arch callbacks related to pm events isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 14/18] KVM: Eliminate kvm_arch_post_init_vm() isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 15/18] KVM: x86: Delete kvm_arch_hardware_enable/disable() isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 16/18] KVM: Add config to not compile kvm_arch.c isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 17/18] KVM: x86: Remove cpus_hardware_enabled and related sanity check isaku.yamahata
2022-08-20  6:00 ` [RFC PATCH 18/18] KVM: " isaku.yamahata

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1660974106.git.isaku.yamahata@intel.com \
    --to=isaku.yamahata@intel.com \
    --cc=chao.gao@intel.com \
    --cc=isaku.yamahata@gmail.com \
    --cc=kai.huang@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.