From: Jiri Slaby <jirislaby@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>
Cc: Liangyan <liangyan.peng@bytedance.com>,
Yicong Shen <shenyicong.1023@bytedance.com>
Subject: Re: [patch 2/4] genirq: Move irq_wait_for_poll() to call site
Date: Tue, 22 Jul 2025 09:07:37 +0200 [thread overview]
Message-ID: <b97f4d0d-ddb6-4fca-bf96-e9f11e00e060@kernel.org> (raw)
In-Reply-To: <20250718185311.948555026@linutronix.de>
On 18. 07. 25, 20:54, Thomas Gleixner wrote:
> Move it to the call site so that the waiting for the INPROGRESS flag can be
> reused by an upcoming mitigation for a potential live lock in the edge type
> handler.
>
> No functional change.
Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
> --- a/kernel/irq/chip.c
> +++ b/kernel/irq/chip.c
> @@ -449,11 +449,19 @@ void unmask_threaded_irq(struct irq_desc
> unmask_irq(desc);
> }
>
> -static bool irq_check_poll(struct irq_desc *desc)
> +/* Busy wait until INPROGRESS is cleared */
> +static bool irq_wait_on_inprogress(struct irq_desc *desc)
> {
> - if (!(desc->istate & IRQS_POLL_INPROGRESS))
> - return false;
> - return irq_wait_for_poll(desc);
> + if (IS_ENABLED(CONFIG_SMP)) {
> + do {
> + raw_spin_unlock(&desc->lock);
> + while (irqd_irq_inprogress(&desc->irq_data))
> + cpu_relax();
> + raw_spin_lock(&desc->lock);
> + } while (irqd_irq_inprogress(&desc->irq_data));
> + }
> + /* Might have been disabled in meantime */
> + return !irqd_irq_disabled(&desc->irq_data) && desc->action;
Just noting that this line is newly evaluated on !SMP too. But it is
still supposed to evaluate to false, given we are here on this only CPU.
thanks,
--
js
suse labs
next prev parent reply other threads:[~2025-07-22 7:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-18 18:54 [patch 0/4] genirq: Prevent migration live lock in handle_edge_irq() Thomas Gleixner
2025-07-18 18:54 ` [patch 1/4] genirq: Remove pointless local variable Thomas Gleixner
2025-07-22 12:45 ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2025-07-18 18:54 ` [patch 2/4] genirq: Move irq_wait_for_poll() to call site Thomas Gleixner
2025-07-22 7:07 ` Jiri Slaby [this message]
2025-07-22 12:36 ` Thomas Gleixner
2025-07-22 12:45 ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2025-07-23 6:22 ` Ingo Molnar
2025-07-18 18:54 ` [patch 3/4] genirq: Split up irq_pm_check_wakeup() Thomas Gleixner
2025-07-22 12:45 ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2025-07-18 18:54 ` [patch 4/4] genirq: Prevent migration live lock in handle_edge_irq() Thomas Gleixner
2025-07-22 7:37 ` Jiri Slaby
2025-07-22 12:45 ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2025-07-21 15:05 ` [External] [patch 0/4] " Liangyan
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=b97f4d0d-ddb6-4fca-bf96-e9f11e00e060@kernel.org \
--to=jirislaby@kernel.org \
--cc=liangyan.peng@bytedance.com \
--cc=linux-kernel@vger.kernel.org \
--cc=shenyicong.1023@bytedance.com \
--cc=tglx@linutronix.de \
/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.