Thread (51 messages) flat view 51 messages, 7 authors, 2022-02-04

Re: [PATCH] rcutorture: Avoid problematic critical section nesting on RT

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2021-08-20 07:11:19
Also in: linux-arm-kernel, lkml, rcu

On 2021-08-19 23:11:12 [-0500], Scott Wood wrote:
On Thu, 2021-08-19 at 11:20 -0700, Paul E. McKenney wrote:
quoted
On Thu, Aug 19, 2021 at 05:47:08PM +0200, Sebastian Andrzej Siewior wrote:
quoted
On 2021-08-19 17:39:29 [+0200], To Paul E. McKenney wrote:
quoted
+	/*
+	 * Ideally these sequences would be detected in debug builds
+	 * (regardless of RT), but until then don't stop testing
+	 * them on non-RT.
+	 */
+	if (IS_ENABLED(CONFIG_PREEMPT_RT)) {
+		/*
+		 * Can't release the outermost rcu lock in an irq disabled
+		 * section without preemption also being disabled, if irqs
+		 * had ever been enabled during this RCU critical section
+		 * (could leak a special flag and delay reporting the qs).
+		 */
+		if ((oldmask & RCUTORTURE_RDR_RCU) &&
+		    (mask & RCUTORTURE_RDR_IRQ) &&
+		    !(mask & preempts))
+			mask |= RCUTORTURE_RDR_RCU;
This piece above, I don't understand. I had it running for a while and
it didn't explode. Let me try TREE01 for 30min without that piece.
This might be historical.  There was a time when interrupts being
disabled across rcu_read_unlock() meant that preemption had to have
been disabled across the entire RCU read-side critical section.

I am not seeing a purpose for it now, but I could easily be missing
something, especially given my tenuous grasp of RT.
Yeah, I think this was to deal with not having the irq work stuff in RT
at the time.
Good. Thank you for the confirmation. 
I run (without the hunk above) 2x 6h of TREE01 and 4x 6h of TREE06 and
it looked good.
-Scott
Sebastian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help