From: sashiko-bot@kernel.org
To: "Claudio Imbrenda" <imbrenda@linux.ibm.com>
Cc: "Vasily Gorbik" <gor@linux.ibm.com>,
linux-s390@vger.kernel.org, "Heiko Carstens" <hca@linux.ibm.com>,
"Alexander Gordeev" <agordeev@linux.ibm.com>,
kvm@vger.kernel.org
Subject: Re: [PATCH v6 06/14] KVM: s390: Fix race in __do_essa()
Date: Thu, 30 Jul 2026 16:47:46 +0000 [thread overview]
Message-ID: <20260730164747.444331F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260730162714.133327-7-imbrenda@linux.ibm.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] System stall / SRCU stall warning due to holding `kvm->srcu` across a long-running page table walk.
--
--- Patch [6]: [PATCH v6 06/14] KVM: s390: Fix race in __do_essa() ---
commit 8a0e7e6fefae191da0effc8b1bcdd717dfb5216b
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
KVM: s390: Fix race in __do_essa()
This commit modifies the locking around KVM s390 migration and CMMA handling,
replacing slots_lock with slots_arch_lock to fix a race with __do_essa(). It
also adds a srcu guard to kvm_s390_vm_set_migration().
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index de3cb6111bd44..24c3bfcd5db26 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
[ ... ]
> @@ -1300,7 +1300,9 @@ static int kvm_s390_vm_set_migration(struct kvm *kvm,
> {
> int res = -ENXIO;
>
> - mutex_lock(&kvm->slots_lock);
> + guard(srcu)(&kvm->srcu);
> + guard(mutex)(&kvm->slots_arch_lock);
> +
> switch (attr->attr) {
> case KVM_S390_VM_MIGRATION_START:
> res = kvm_s390_vm_start_migration(kvm);
[Severity: High]
Will holding kvm->srcu across the entire migration start/stop cause an SRCU
stall for large VMs?
Looking at kvm_s390_vm_start_migration(), it eventually calls
gmap_set_cmma_all_dirty() (and kvm_s390_vm_stop_migration() calls
gmap_set_cmma_all_clean()), which iterates over the entire guest address space:
kvm_s390_vm_set_migration()
kvm_s390_vm_start_migration()
gmap_set_cmma_all_dirty()
While the page table walk yields with cond_resched() to prevent soft lockups,
yielding inside an SRCU read-side critical section does not allow the SRCU
grace period to advance.
Could this stall the SRCU grace period and block concurrent memslot updates
across the system?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260730162714.133327-1-imbrenda@linux.ibm.com?part=6
next prev parent reply other threads:[~2026-07-30 16:47 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-30 16:27 [PATCH v6 00/14] KVM: s390: Misc fixes Claudio Imbrenda
2026-07-30 16:27 ` [PATCH v6 01/14] KVM: s390: Fix unlikely NULL gmap dereference Claudio Imbrenda
2026-07-30 16:50 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 02/14] KVM: s390: Fix kvm_s390_vcpu_unsetup_cmma() Claudio Imbrenda
2026-07-30 16:55 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 03/14] KVM: s390: Fix overclearing ESCA in case of error Claudio Imbrenda
2026-07-30 17:04 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 04/14] KVM: s390: ucontrol: Fix sca_clear_ext_call() Claudio Imbrenda
2026-07-30 16:51 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 05/14] KVM: s390: Fix leaking of PGM_ADDRESSING to userspace Claudio Imbrenda
2026-07-30 16:40 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 06/14] KVM: s390: Fix race in __do_essa() Claudio Imbrenda
2026-07-30 16:47 ` sashiko-bot [this message]
2026-07-30 16:27 ` [PATCH v6 07/14] KVM: s390: cmma: Fix dirty tracking when removing memslot Claudio Imbrenda
2026-07-30 16:48 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 08/14] KVM: s390: ucontrol: Add missing locking around gmap_remove_child() Claudio Imbrenda
2026-07-30 16:48 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 09/14] KVM: s390: Free the mmu cache when kvm_arch_vcpu_create() fails Claudio Imbrenda
2026-07-30 16:44 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 10/14] KVM: s390: Return -EINTR if a signal is pending while faulting-in Claudio Imbrenda
2026-07-30 16:53 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 11/14] KVM: s390: Fix ordering when adding to SCA Claudio Imbrenda
2026-07-30 16:54 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 12/14] KVM: s390: Fix cleanup in kvm_s390_pv_create_cpu() Claudio Imbrenda
2026-07-30 16:52 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 13/14] KVM: s390: Fix kvm_arch_commit_memory_region() when low on memory Claudio Imbrenda
2026-07-30 17:02 ` sashiko-bot
2026-07-30 16:27 ` [PATCH v6 14/14] KVM: s390: Move DAT table updates to kvm_arch_prepare_memory_region() Claudio Imbrenda
2026-07-30 17:01 ` sashiko-bot
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=20260730164747.444331F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=agordeev@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.