From: Heiko Carstens <hca@linux.ibm.com>
To: Frederic Weisbecker <frederic@kernel.org>,
Alexander Gordeev <agordeev@linux.ibm.com>,
Sven Schnelle <svens@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org
Subject: [PATCH 6/9] s390/irq/idle: Remove psw bits early
Date: Wed, 18 Feb 2026 15:20:09 +0100 [thread overview]
Message-ID: <20260218142012.863464-7-hca@linux.ibm.com> (raw)
In-Reply-To: <20260218142012.863464-1-hca@linux.ibm.com>
Remove wait, io, external interrupt bits early in do_io_irq()/do_ext_irq()
when previous context was idle. This saves one conditional branch and is
closer to the original old assembly code.
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
---
arch/s390/kernel/irq.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c
index 080e9285b337..084919a04e04 100644
--- a/arch/s390/kernel/irq.c
+++ b/arch/s390/kernel/irq.c
@@ -147,8 +147,10 @@ void noinstr do_io_irq(struct pt_regs *regs)
bool from_idle;
from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
- if (from_idle)
+ if (from_idle) {
update_timer_idle();
+ regs->psw.mask &= ~(PSW_MASK_EXT | PSW_MASK_IO | PSW_MASK_WAIT);
+ }
irq_enter_rcu();
@@ -174,9 +176,6 @@ void noinstr do_io_irq(struct pt_regs *regs)
set_irq_regs(old_regs);
irqentry_exit(regs, state);
-
- if (from_idle)
- regs->psw.mask &= ~(PSW_MASK_EXT | PSW_MASK_IO | PSW_MASK_WAIT);
}
void noinstr do_ext_irq(struct pt_regs *regs)
@@ -186,8 +185,10 @@ void noinstr do_ext_irq(struct pt_regs *regs)
bool from_idle;
from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
- if (from_idle)
+ if (from_idle) {
update_timer_idle();
+ regs->psw.mask &= ~(PSW_MASK_EXT | PSW_MASK_IO | PSW_MASK_WAIT);
+ }
irq_enter_rcu();
@@ -209,9 +210,6 @@ void noinstr do_ext_irq(struct pt_regs *regs)
irq_exit_rcu();
set_irq_regs(old_regs);
irqentry_exit(regs, state);
-
- if (from_idle)
- regs->psw.mask &= ~(PSW_MASK_EXT | PSW_MASK_IO | PSW_MASK_WAIT);
}
static void show_msi_interrupt(struct seq_file *p, int irq)
--
2.51.0
next prev parent reply other threads:[~2026-02-18 14:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-18 14:20 [PATCH 0/9] s390/idle/vtime: Minor fixes and cleanups Heiko Carstens
2026-02-18 14:20 ` [PATCH 1/9] s390/idle: Fix cpu idle exit cpu time accounting Heiko Carstens
2026-03-04 14:16 ` Frederic Weisbecker
2026-02-18 14:20 ` [PATCH 2/9] s390/vtime: Fix virtual timer forwarding Heiko Carstens
2026-03-04 14:23 ` Frederic Weisbecker
2026-02-18 14:20 ` [PATCH 3/9] s390/idle: Add comment for non obvious code Heiko Carstens
2026-03-04 14:38 ` Frederic Weisbecker
2026-02-18 14:20 ` [PATCH 4/9] s390/idle: Slightly optimize idle time accounting Heiko Carstens
2026-02-18 14:20 ` [PATCH 5/9] s390/idle: Inline update_timer_idle() Heiko Carstens
2026-03-04 15:07 ` Frederic Weisbecker
2026-02-18 14:20 ` Heiko Carstens [this message]
2026-02-18 14:20 ` [PATCH 7/9] s390/vtime: Use __this_cpu_read() / get rid of READ_ONCE() Heiko Carstens
2026-03-04 14:49 ` Frederic Weisbecker
2026-02-18 14:20 ` [PATCH 8/9] s390/vtime: Use lockdep_assert_irqs_disabled() instead of BUG_ON() Heiko Carstens
2026-03-04 15:08 ` Frederic Weisbecker
2026-02-18 14:20 ` [PATCH 9/9] s390/idle: Remove psw_idle() prototype Heiko Carstens
2026-03-04 15:09 ` Frederic Weisbecker
2026-02-25 9:19 ` [PATCH 0/9] s390/idle/vtime: Minor fixes and cleanups Sven Schnelle
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=20260218142012.863464-7-hca@linux.ibm.com \
--to=hca@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=borntraeger@linux.ibm.com \
--cc=frederic@kernel.org \
--cc=gor@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=svens@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.