mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/5] srcu: Add lockdep coverage for atomic SRCU and fix IRQ-state bug
@ 2026-09-14  9:34 Kunwu Chan
  2026-09-14  9:34 ` [PATCH 1/5] rcutorture: Add atomic SRCU lockdep support Kunwu Chan
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Kunwu Chan @ 2026-09-14  9:34 UTC (permalink / raw)
  To: jiangshanlai, paulmck
  Cc: josh, rostedt, mathieu.desnoyers, rcu, linux-kernel, Kunwu Chan

The atomic SRCU fastpath enables synchronize_srcu_atomic() to be called                                   
from contexts with interrupts disabled. This series extends the                                          
rcutorture lockdep tests to cover the atomic SRCU path and fixes an                                       
IRQ-state preservation bug discovered along the way.                                                      
                                                                                                       
Patch 1-2 add lockdep test coverage for atomic SRCU:                                                      
- testtype 4: same-type atomic SRCU deadlock                                                            
- testtype 5: atomic SRCU + raw spinlock dependency cycle                                               
- testtype 6: rcu_read_lock() → synchronize_srcu_atomic()                                               
  legitimate nesting, must not trigger lockdep warning                                                  
                                                                                                       
Patch 3 fixes a bug where the synchronize_srcu_atomic() call chain                                        
unconditionally re-enables interrupts on unlock, by switching to the                                      
irqsave/irqrestore variants throughout the call chain.                                                    
                                                                                                       
Patch 4 fixes a pre-existing double nerrs count in the script.                                            
                                                                                                       
Patch 5 adds testtype 7: cross-CPU IRQ context mismatch detection,                                        
where an atomic SRCU reader held with IRQs enabled on one CPU is                                          
paired with synchronize_srcu_atomic() via IPI on another CPU.
 
Kunwu Chan (5):
  rcutorture: Add atomic SRCU lockdep support
  selftests/rcutorture: Wire atomic SRCU into srcu_lockdep.sh
  srcutree: Preserve IRQ state in synchronize_srcu_atomic() callchain
  selftests/rcutorture: Fix double nerrs count in srcu_lockdep.sh
  rcutorture: Add atomic SRCU cross-CPU IRQ context mismatch test

 kernel/rcu/rcutorture.c                       | 109 +++++++++++++++++-
 kernel/rcu/srcutree.c                         |  42 ++++---
 .../selftests/rcutorture/bin/srcu_lockdep.sh  |  77 ++++++++++++-
 3 files changed, 205 insertions(+), 23 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-09-14  9:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-14  9:34 [PATCH 0/5] srcu: Add lockdep coverage for atomic SRCU and fix IRQ-state bug Kunwu Chan
2026-09-14  9:34 ` [PATCH 1/5] rcutorture: Add atomic SRCU lockdep support Kunwu Chan
2026-09-14  9:34 ` [PATCH 2/5] selftests/rcutorture: Wire atomic SRCU into srcu_lockdep.sh Kunwu Chan
2026-09-14  9:34 ` [PATCH 3/5] srcutree: Preserve IRQ state in synchronize_srcu_atomic() callchain Kunwu Chan
2026-09-14  9:34 ` [PATCH 4/5] selftests/rcutorture: Fix double nerrs count in srcu_lockdep.sh Kunwu Chan
2026-09-14  9:34 ` [PATCH 5/5] rcutorture: Add atomic SRCU cross-CPU IRQ context mismatch test Kunwu Chan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®