All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Vishal Chourasia" <vishalc@linux.ibm.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH v3 1/2] KVM: powerpc: Use generic xfer to guest work function
Date: Thu, 09 Jul 2026 06:52:47 +0000	[thread overview]
Message-ID: <20260709065247.955031F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260709062940.1679427-4-vishalc@linux.ibm.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Lockdep assertion failure in xfer_to_guest_mode_prepare() due to mismatched IRQ state on BookE architecture after emulated MTMSRWE.
--

--- Patch [1]: [PATCH v3 1/2] KVM: powerpc: Use generic xfer to guest work function ---
commit ad7243cc79a6e34d4784ae75e8ea35ce946a8343
Author: Vishal Chourasia <vishalc@linux.ibm.com>

KVM: powerpc: Use generic xfer to guest work function

This commit updates powerpc KVM run loops to use generic infrastructure for
checking and handling pending task_work before guest entry. It replaces
open-coded need_resched() checks and adds xfer_to_guest_mode_prepare() to
disable IRQs and handle TIF_NOTIFY_RESUME properly.

> diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
> index 00302399fc37b..be5e48ae0c6c2 100644
> --- a/arch/powerpc/kvm/powerpc.c
> +++ b/arch/powerpc/kvm/powerpc.c
> @@ -81,23 +81,41 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
>  	int r;
>  
>  	WARN_ON(irqs_disabled());
> +	/*
> +	 * local_irq_disable() first: on 32-bit, hard_irq_disable() alone is a
> +	 * raw MSR[EE] clear that bypasses the lockdep/irq-tracing state, and
> +	 * the xfer_to_guest_mode helpers assert IRQs are seen as disabled.
> +	 */
> +	local_irq_disable();
>  	hard_irq_disable();
>  
>  	while (true) {
> -		if (need_resched()) {
> +		xfer_to_guest_mode_prepare();

[Severity: High]
Can this trigger a lockdep assertion failure on BookE architecture?

When a BookE guest executes mtmsr to set the MSR_WE bit, it enters an idle
state and invokes kvmppc_core_prepare_to_enter(). This function enables
lockdep IRQs but disables hardware IRQs using a macro that bypasses lockdep 
on 32-bit:

arch/powerpc/kvm/booke.c:kvmppc_core_prepare_to_enter() {
    ...
    if (vcpu->arch.shared->msr & MSR_WE) {
        local_irq_enable();
        kvm_vcpu_halt(vcpu);
        hard_irq_disable();
        ...
        r = 1;
    }
}

If kvmppc_core_prepare_to_enter() returns 1, the while loop later in 
kvmppc_prepare_to_enter() continues:

arch/powerpc/kvm/powerpc.c:kvmppc_prepare_to_enter() {
    ...
    if (kvmppc_core_prepare_to_enter(vcpu)) {
        /* interrupts got enabled in between, so we
           are back at square 1 */
        continue;
    }
}

This continues back to the start of the loop and invokes the newly added 
xfer_to_guest_mode_prepare() check. Since hard_irq_disable() bypassed the 
lockdep state update, lockdep still believes IRQs are enabled. Will this 
cause xfer_to_guest_mode_prepare() to fail its lockdep_assert_irqs_disabled() 
check and trigger a splat?

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260709062940.1679427-2-vishalc@linux.ibm.com?part=1

  reply	other threads:[~2026-07-09  6:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-09  6:29 [PATCH v3 0/2] KVM: powerpc: Use generic xfer to guest work function Vishal Chourasia
2026-07-09  6:29 ` [PATCH v3 1/2] " Vishal Chourasia
2026-07-09  6:52   ` sashiko-bot [this message]
2026-07-09  6:29 ` [PATCH v3 2/2] powerpc: enable to run posix cpu timers in task context Vishal Chourasia

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=20260709065247.955031F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=vishalc@linux.ibm.com \
    /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.