Re: [QUESTION] problems report: rcu_read_unlock_special() called in irq_exit() causes dead loop
From: Qi Xi
Date: Wed Jul 02 2025 - 05:18:10 EST
Hi Joel,
After applying the 2 patches, the problem still exists. Compared to the
previous fixes which did solve the problem, the difference is
ct_in_irq() in the first patch.
I am wondering why "nesting != CT_NESTING_IRQ_NONIDLE" is added?
(previous fix: problem is solved)
+bool ct_in_irq(void)
+{
+ return ct_nmi_nesting() != 0;
+}
(current fix: problem still exists)
+bool ct_in_irq(void)
+{
+ long nesting = ct_nmi_nesting();
+
+ return (nesting && nesting != CT_NESTING_IRQ_NONIDLE);
+}
On 2025/7/1 21:29, Joel Fernandes wrote:
On 7/1/2025 5:20 AM, Qi Xi wrote:
Hello everyone,
Friendly ping about this problem :)
Ah, thanks for checking. The fix is slated for kernel 6.17.
If you want to test it, could you apply it in advance from the RCU tree?
You need these 2:
https://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git/commit/?h=next&id=6758c93749f8bf09b9282f100c5dd0a5c501f91c
https://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git/commit/?h=next&id=3cd298bf3bb69e3bca6abfe97e1b44ffa37f3dee
Thanks.