From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Xie Yuanbin <xieyuanbin1@huawei.com>
Cc: linux@armlinux.org.uk, clrkwllms@kernel.org, rostedt@goodmis.org,
rmk+kernel@armlinux.org.uk, linusw@kernel.org, arnd@arndb.de,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev,
liaohua4@huawei.com, lilinjie8@huawei.com
Subject: Re: [PATCH] ARM: enable interrupts when arm_notify_die() is handling user mode errors
Date: Thu, 25 Jun 2026 10:50:34 +0200 [thread overview]
Message-ID: <20260625085034.tvyGSmaP@linutronix.de> (raw)
In-Reply-To: <20260625073522.182503-1-xieyuanbin1@huawei.com>
On 2026-06-25 15:35:22 [+0800], Xie Yuanbin wrote:
> For lastest linux-next kernel, with default multi_v7_defconfig, and
> setting CONFIG_PREEMPT_RT=y, CONFIG_DEBUG_ATOMIC_SLEEP=y, and
> CONFIG_PERF_EVENTS=n. When the user program executes bkpt
> instruction, the following WARN will be triggered:
> ```log
> [ 3.677825] BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
> [ 3.678002] in_atomic(): 0, irqs_disabled(): 128, non_block: 0, pid: 84, name: test
> [ 3.678036] preempt_count: 0, expected: 0
> [ 3.678078] RCU nest depth: 0, expected: 0
> [ 3.678864] CPU: 0 UID: 0 PID: 84 Comm: test Tainted: G W 7.1.0-next-20260623 #45 PREEMPT_RT
> [ 3.679067] Tainted: [W]=WARN
> [ 3.679088] Hardware name: Generic DT based system
> [ 3.679198] Call trace:
> [ 3.679695] unwind_backtrace from show_stack+0x10/0x14
> [ 3.680363] show_stack from dump_stack_lvl+0x50/0x5c
> [ 3.680377] dump_stack_lvl from __might_resched+0x160/0x174
> [ 3.680393] __might_resched from rt_spin_lock+0x38/0x138
> [ 3.680425] rt_spin_lock from force_sig_info_to_task+0x1c/0x11c
> [ 3.680438] force_sig_info_to_task from force_sig_fault+0x44/0x64
> [ 3.680450] force_sig_fault from do_PrefetchAbort+0x94/0x9c
> [ 3.680461] do_PrefetchAbort from ret_from_exception+0x0/0x20
> [ 3.680513] Exception stack(0xf0ab5fb0 to 0xf0ab5ff8)
> [ 3.680653] 5fa0: 00000000 bed32e94 bed32e9c 00037954
> [ 3.680672] 5fc0: 00000002 00000001 bed32e94 0009d590 00000000 bed32e9c 00000002 00000000
> [ 3.680682] 5fe0: bed32d48 bed32d38 00037a00 00037958 60000010 ffffffff
> ```
I don't think this required information as it is obvious. At the very
least you could trim it the needed parts if considered needed.
> When PREEMPT_RT is enabled, force_sig_info() requires interrupts to be
> enabled. Enable interrupts when arm_notify_die() is handling user mode
> errors to fix the issue.
>
> Fixes: c6e61c06d606 ("ARM: 9463/1: Allow to enable RT")
>
> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> Cc: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
> Signed-off-by: Xie Yuanbin <xieyuanbin1@huawei.com>
So I did test the 32bit case on arm64 while testing/ backporting the
breakpoint handling there but apparently did not try it on real
arm32.
For "asm("BKPT #0");" the SIGTRAP is not raised instead I get just
| 8<--- cut here ---
| Unhandled prefetch abort: debug event (0x222) at 0x00000000
on the kernel side and a "Bus error" on userland side.
So
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
for this but actual breakpoint handling might be broken or is it just
me? But then your stack trace looks like mine so :/
Sebastian
next prev parent reply other threads:[~2026-06-25 8:50 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-25 7:35 [PATCH] ARM: enable interrupts when arm_notify_die() is handling user mode errors Xie Yuanbin
2026-06-25 8:50 ` Sebastian Andrzej Siewior [this message]
2026-06-25 9:05 ` Russell King
2026-06-25 9:30 ` Sebastian Andrzej Siewior
2026-06-25 10:20 ` Russell King
2026-06-25 12:08 ` Sebastian Andrzej Siewior
2026-06-25 10:00 ` Xie Yuanbin
2026-06-25 10:23 ` Russell King
2026-06-25 12:26 ` Xie Yuanbin
2026-06-25 15:21 ` Sebastian Andrzej Siewior
2026-06-26 8:29 ` Xie Yuanbin
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=20260625085034.tvyGSmaP@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=arnd@arndb.de \
--cc=clrkwllms@kernel.org \
--cc=liaohua4@huawei.com \
--cc=lilinjie8@huawei.com \
--cc=linusw@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-devel@lists.linux.dev \
--cc=linux@armlinux.org.uk \
--cc=rmk+kernel@armlinux.org.uk \
--cc=rostedt@goodmis.org \
--cc=xieyuanbin1@huawei.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.