[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250828000156.23389-1-seanjc@google.com>
Date: Wed, 27 Aug 2025 17:01:49 -0700
From: Sean Christopherson <seanjc@...gle.com>
To: Marc Zyngier <maz@...nel.org>, Oliver Upton <oliver.upton@...ux.dev>,
Catalin Marinas <catalin.marinas@....com>, Will Deacon <will@...nel.org>,
Tianrui Zhao <zhaotianrui@...ngson.cn>, Bibo Mao <maobibo@...ngson.cn>,
Huacai Chen <chenhuacai@...nel.org>, Anup Patel <anup@...infault.org>,
Paul Walmsley <paul.walmsley@...ive.com>, Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>, Sean Christopherson <seanjc@...gle.com>,
Paolo Bonzini <pbonzini@...hat.com>, Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
Borislav Petkov <bp@...en8.de>, Dave Hansen <dave.hansen@...ux.intel.com>, x86@...nel.org,
"K. Y. Srinivasan" <kys@...rosoft.com>, Haiyang Zhang <haiyangz@...rosoft.com>, Wei Liu <wei.liu@...nel.org>,
Dexuan Cui <decui@...rosoft.com>, Peter Zijlstra <peterz@...radead.org>,
Andy Lutomirski <luto@...nel.org>, "Paul E. McKenney" <paulmck@...nel.org>,
Frederic Weisbecker <frederic@...nel.org>, Neeraj Upadhyay <neeraj.upadhyay@...nel.org>,
Joel Fernandes <joelagnelf@...dia.com>, Josh Triplett <josh@...htriplett.org>,
Boqun Feng <boqun.feng@...il.com>, Uladzislau Rezki <urezki@...il.com>
Cc: linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
kvmarm@...ts.linux.dev, kvm@...r.kernel.org, loongarch@...ts.linux.dev,
kvm-riscv@...ts.infradead.org, linux-riscv@...ts.infradead.org,
linux-hyperv@...r.kernel.org, rcu@...r.kernel.org,
Nuno Das Neves <nunodasneves@...ux.microsoft.com>, Mukesh R <mrathor@...ux.microsoft.com>
Subject: [PATCH v2 0/7] Drivers: hv: Fix NEED_RESCHED_LAZY and use common APIs
Fix a bug where MSHV root partitions (and upper-level VTL code) don't honor
NEED_RESCHED_LAZY, and then deduplicate the TIF related MSHV code by turning
the "kvm" entry APIs into more generic "virt" APIs.
This version is based on
git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git hyperv-next
in order to pickup the VTL changes that are queued for 6.18. I also
squashed the NEED_RESCHED_LAZY fixes for root and VTL modes into a single
patch, as it should be easy/straightforward to drop the VTL change as needed
if we want this in 6.17 or earlier.
That effectively means the full series is dependent on the VTL changes being
fully merged for 6.18. But I think that's ok as it's really only the MSHV
changes that have any urgency whatsoever, and I assume that Microsoft is
the only user that truly cares about the MSHV root fix. I.e. if the whole
thing gets delayed, I think it's only the Hyper-V folks that are impacted.
I have no preference what tree this goes through, or when, and can respin
and/or split as needed.
As with v1, the Hyper-V stuff and non-x86 architectures are compile-tested
only.
v2:
- Rebase on hyperv-next.
- Fix and converge the VTL code as well. [Peter, Nuno]
v1: https://lore.kernel.org/all/20250825200622.3759571-1-seanjc@google.com
Sean Christopherson (7):
Drivers: hv: Handle NEED_RESCHED_LAZY before transferring to guest
Drivers: hv: Disentangle VTL return cancellation from SIGPENDING
Drivers: hv: Disable IRQs only after handling pending work before VTL
return
entry/kvm: KVM: Move KVM details related to signal/-EINTR into KVM
proper
entry: Rename "kvm" entry code assets to "virt" to genericize APIs
Drivers: hv: Use common "entry virt" APIs to do work in root before
running guest
Drivers: hv: Use "entry virt" APIs to do work before returning to
lower VTL
MAINTAINERS | 2 +-
arch/arm64/kvm/Kconfig | 2 +-
arch/arm64/kvm/arm.c | 3 +-
arch/loongarch/kvm/Kconfig | 2 +-
arch/loongarch/kvm/vcpu.c | 3 +-
arch/riscv/kvm/Kconfig | 2 +-
arch/riscv/kvm/vcpu.c | 3 +-
arch/x86/kvm/Kconfig | 2 +-
arch/x86/kvm/vmx/vmx.c | 1 -
arch/x86/kvm/x86.c | 3 +-
drivers/hv/Kconfig | 2 ++
drivers/hv/mshv.h | 2 --
drivers/hv/mshv_common.c | 22 ---------------
drivers/hv/mshv_root_main.c | 31 ++++-----------------
drivers/hv/mshv_vtl_main.c | 23 +++++++--------
include/linux/{entry-kvm.h => entry-virt.h} | 19 +++++--------
include/linux/kvm_host.h | 17 +++++++++--
include/linux/rcupdate.h | 2 +-
kernel/entry/Makefile | 2 +-
kernel/entry/{kvm.c => virt.c} | 15 ++++------
kernel/rcu/tree.c | 6 ++--
virt/kvm/Kconfig | 2 +-
22 files changed, 60 insertions(+), 106 deletions(-)
rename include/linux/{entry-kvm.h => entry-virt.h} (83%)
rename kernel/entry/{kvm.c => virt.c} (66%)
base-commit: 03ac62a578566730ab3c320f289f7320798ee2e1
--
2.51.0.268.g9569e192d0-goog
Powered by blists - more mailing lists