From: Sean Christopherson <seanjc@google.com>
To: Madhavan Srinivasan <maddy@linux.ibm.com>,
Anup Patel <anup@brainfault.org>, Paul Walmsley <pjw@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Kiryl Shutsemau <kas@kernel.org>,
Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: "Nicholas Piggin" <npiggin@gmail.com>,
"Atish Patra" <atish.patra@linux.dev>,
"Alexandre Ghiti" <alex@ghiti.fr>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org,
kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org,
x86@kernel.org, linux-coco@lists.linux.dev,
linux-kernel@vger.kernel.org,
"Jean-Christophe Guillain" <jean-christophe@guillain.net>,
"Paweł S" <spawel523@gmail.com>
Subject: [PATCH v2 7/7] KVM: WARN if vCPU creation is in-progress when locking all vCPUs
Date: Mon, 21 Sep 2026 10:44:45 -0700 [thread overview]
Message-ID: <20260921174445.911676-8-seanjc@google.com> (raw)
In-Reply-To: <20260921174445.911676-1-seanjc@google.com>
Now that KVM holds kvm->lock for the entirety of vCPU creation, from when
created_vcpus is incremented until the new vCPU is fully onlined, WARN if
the impossible happens and KVM somehow sees a discrepancy between the
number of vCPUs "created" and "onlined".
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
virt/kvm/kvm_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 985af39b980a..e66d9761ee49 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -1363,7 +1363,7 @@ int kvm_trylock_all_vcpus(struct kvm *kvm)
lockdep_assert_held(&kvm->lock);
- if (kvm_is_vcpu_creation_in_progress(kvm))
+ if (WARN_ON_ONCE(kvm_is_vcpu_creation_in_progress(kvm)))
return -EBUSY;
kvm_for_each_vcpu(i, vcpu, kvm)
@@ -1389,7 +1389,7 @@ int kvm_lock_all_vcpus(struct kvm *kvm)
lockdep_assert_held(&kvm->lock);
- if (kvm_is_vcpu_creation_in_progress(kvm))
+ if (WARN_ON_ONCE(kvm_is_vcpu_creation_in_progress(kvm)))
return -EBUSY;
kvm_for_each_vcpu(i, vcpu, kvm) {
--
2.55.0.1082.g2b9226bbc0-goog
--
kvm-riscv mailing list
kvm-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kvm-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <seanjc@google.com>
To: Madhavan Srinivasan <maddy@linux.ibm.com>,
Anup Patel <anup@brainfault.org>, Paul Walmsley <pjw@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Kiryl Shutsemau <kas@kernel.org>,
Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: "Nicholas Piggin" <npiggin@gmail.com>,
"Atish Patra" <atish.patra@linux.dev>,
"Alexandre Ghiti" <alex@ghiti.fr>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org,
kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org,
x86@kernel.org, linux-coco@lists.linux.dev,
linux-kernel@vger.kernel.org,
"Jean-Christophe Guillain" <jean-christophe@guillain.net>,
"Paweł S" <spawel523@gmail.com>
Subject: [PATCH v2 7/7] KVM: WARN if vCPU creation is in-progress when locking all vCPUs
Date: Mon, 21 Sep 2026 10:44:45 -0700 [thread overview]
Message-ID: <20260921174445.911676-8-seanjc@google.com> (raw)
In-Reply-To: <20260921174445.911676-1-seanjc@google.com>
Now that KVM holds kvm->lock for the entirety of vCPU creation, from when
created_vcpus is incremented until the new vCPU is fully onlined, WARN if
the impossible happens and KVM somehow sees a discrepancy between the
number of vCPUs "created" and "onlined".
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
virt/kvm/kvm_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 985af39b980a..e66d9761ee49 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -1363,7 +1363,7 @@ int kvm_trylock_all_vcpus(struct kvm *kvm)
lockdep_assert_held(&kvm->lock);
- if (kvm_is_vcpu_creation_in_progress(kvm))
+ if (WARN_ON_ONCE(kvm_is_vcpu_creation_in_progress(kvm)))
return -EBUSY;
kvm_for_each_vcpu(i, vcpu, kvm)
@@ -1389,7 +1389,7 @@ int kvm_lock_all_vcpus(struct kvm *kvm)
lockdep_assert_held(&kvm->lock);
- if (kvm_is_vcpu_creation_in_progress(kvm))
+ if (WARN_ON_ONCE(kvm_is_vcpu_creation_in_progress(kvm)))
return -EBUSY;
kvm_for_each_vcpu(i, vcpu, kvm) {
--
2.55.0.1082.g2b9226bbc0-goog
WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <seanjc@google.com>
To: Madhavan Srinivasan <maddy@linux.ibm.com>,
Anup Patel <anup@brainfault.org>, Paul Walmsley <pjw@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Kiryl Shutsemau <kas@kernel.org>,
Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: "Nicholas Piggin" <npiggin@gmail.com>,
"Atish Patra" <atish.patra@linux.dev>,
"Alexandre Ghiti" <alex@ghiti.fr>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org,
kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org,
x86@kernel.org, linux-coco@lists.linux.dev,
linux-kernel@vger.kernel.org,
"Jean-Christophe Guillain" <jean-christophe@guillain.net>,
"Paweł S" <spawel523@gmail.com>
Subject: [PATCH v2 7/7] KVM: WARN if vCPU creation is in-progress when locking all vCPUs
Date: Mon, 21 Sep 2026 10:44:45 -0700 [thread overview]
Message-ID: <20260921174445.911676-8-seanjc@google.com> (raw)
In-Reply-To: <20260921174445.911676-1-seanjc@google.com>
Now that KVM holds kvm->lock for the entirety of vCPU creation, from when
created_vcpus is incremented until the new vCPU is fully onlined, WARN if
the impossible happens and KVM somehow sees a discrepancy between the
number of vCPUs "created" and "onlined".
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
virt/kvm/kvm_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 985af39b980a..e66d9761ee49 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -1363,7 +1363,7 @@ int kvm_trylock_all_vcpus(struct kvm *kvm)
lockdep_assert_held(&kvm->lock);
- if (kvm_is_vcpu_creation_in_progress(kvm))
+ if (WARN_ON_ONCE(kvm_is_vcpu_creation_in_progress(kvm)))
return -EBUSY;
kvm_for_each_vcpu(i, vcpu, kvm)
@@ -1389,7 +1389,7 @@ int kvm_lock_all_vcpus(struct kvm *kvm)
lockdep_assert_held(&kvm->lock);
- if (kvm_is_vcpu_creation_in_progress(kvm))
+ if (WARN_ON_ONCE(kvm_is_vcpu_creation_in_progress(kvm)))
return -EBUSY;
kvm_for_each_vcpu(i, vcpu, kvm) {
--
2.55.0.1082.g2b9226bbc0-goog
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2026-09-21 17:45 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-21 17:44 [PATCH v2 0/7] KVM: Serialize vCPU creation and revert vcpu_ids tracking Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` [PATCH v2 1/7] KVM: Reject attempts to lock all vCPUs if vCPU creation is in-progress Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` [PATCH v2 2/7] KVM: arm64: vgic: Rely on vCPU creation check in "trylock all vCPUs" Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` [PATCH v2 3/7] KVM: RISC-V: Use kvm_is_vcpu_creation_in_progress() instead of open-coded equivalent Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` [PATCH v2 4/7] KVM: Protect all of kvm_vm_ioctl_create_vcpu() with kvm->lock Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:59 ` sashiko-bot
2026-09-21 17:44 ` [PATCH v2 5/7] KVM: Move check for existing vCPU ID to the top of vCPU creation Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` [PATCH v2 6/7] Revert "KVM: Check for duplicate vcpu_id as early as possible" Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson [this message]
2026-09-21 17:44 ` [PATCH v2 7/7] KVM: WARN if vCPU creation is in-progress when locking all vCPUs Sean Christopherson
2026-09-21 17:44 ` Sean Christopherson
2026-09-22 8:06 ` [PATCH v2 0/7] KVM: Serialize vCPU creation and revert vcpu_ids tracking Jean-Christophe Guillain
2026-09-22 8:06 ` Jean-Christophe Guillain
2026-09-22 8:06 ` Jean-Christophe Guillain
2026-09-22 19:15 ` Naveen N Rao
2026-09-22 19:15 ` Naveen N Rao
2026-09-22 19:15 ` Naveen N Rao
2026-09-26 5:18 ` Paolo Bonzini
2026-09-26 5:18 ` Paolo Bonzini
2026-09-26 5:18 ` Paolo Bonzini
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=20260921174445.911676-8-seanjc@google.com \
--to=seanjc@google.com \
--cc=alex@ghiti.fr \
--cc=anup@brainfault.org \
--cc=aou@eecs.berkeley.edu \
--cc=atish.patra@linux.dev \
--cc=dave.hansen@linux.intel.com \
--cc=jean-christophe@guillain.net \
--cc=kas@kernel.org \
--cc=kvm-riscv@lists.infradead.org \
--cc=kvm@vger.kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=npiggin@gmail.com \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=pjw@kernel.org \
--cc=rick.p.edgecombe@intel.com \
--cc=spawel523@gmail.com \
--cc=x86@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.