Because SRCU-fast does not need quiescent-state helpers, this commit
removes rcu_tasks_trace_qs() and those things that only it uses, including
rcu_trc_cmpxchg_need_qs(), TRC_NEED_QS, and TRC_NEED_QS_CHECKED.

Signed-off-by: Paul E. McKenney <[email protected]>
Cc: Andrii Nakryiko <[email protected]>
Cc: Alexei Starovoitov <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: <[email protected]>
---
 include/linux/rcupdate.h | 26 +-------------------------
 kernel/rcu/tasks.h       | 12 ------------
 2 files changed, 1 insertion(+), 37 deletions(-)

diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index 120536f4c6eb1d..879525c5764a0c 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -176,35 +176,11 @@ void rcu_tasks_torture_stats_print(char *tt, char *tf);
 # endif
 
 # ifdef CONFIG_TASKS_TRACE_RCU
-// Bits for ->trc_reader_special.b.need_qs field.
-#define TRC_NEED_QS            0x1  // Task needs a quiescent state.
-#define TRC_NEED_QS_CHECKED    0x2  // Task has been checked for needing 
quiescent state.
-
-u8 rcu_trc_cmpxchg_need_qs(struct task_struct *t, u8 old, u8 new);
 void rcu_tasks_trace_qs_blkd(struct task_struct *t);
-
-# define rcu_tasks_trace_qs(t)                                                 
\
-       do {                                                                    
\
-               int ___rttq_nesting = READ_ONCE((t)->trc_reader_nesting);       
\
-                                                                               
\
-               if (unlikely(READ_ONCE((t)->trc_reader_special.b.need_qs) == 
TRC_NEED_QS) &&    \
-                   likely(!___rttq_nesting)) {                                 
\
-                       rcu_trc_cmpxchg_need_qs((t), TRC_NEED_QS, 
TRC_NEED_QS_CHECKED); \
-               } else if (___rttq_nesting && ___rttq_nesting != INT_MIN &&     
\
-                          !READ_ONCE((t)->trc_reader_special.b.blocked)) {     
\
-                       rcu_tasks_trace_qs_blkd(t);                             
\
-               }                                                               
\
-       } while (0)
 void rcu_tasks_trace_torture_stats_print(char *tt, char *tf);
-# else
-# define rcu_tasks_trace_qs(t) do { } while (0)
 # endif
 
-#define rcu_tasks_qs(t, preempt)                                       \
-do {                                                                   \
-       rcu_tasks_classic_qs((t), (preempt));                           \
-       rcu_tasks_trace_qs(t);                                          \
-} while (0)
+#define rcu_tasks_qs(t, preempt) do { rcu_tasks_classic_qs((t), (preempt)); } 
while (0)
 
 # ifdef CONFIG_TASKS_RUDE_RCU
 void synchronize_rcu_tasks_rude(void);
diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index 418fa242cf0288..967c43b1937bae 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -1471,18 +1471,6 @@ void __init rcu_tasks_trace_suppress_unused(void)
        rcu_tasks_torture_stats_print_generic(NULL, NULL, NULL, NULL);
 }
 
-/*
- * Do a cmpxchg() on ->trc_reader_special.b.need_qs, allowing for
- * the four-byte operand-size restriction of some platforms.
- *
- * Returns the old value, which is often ignored.
- */
-u8 rcu_trc_cmpxchg_need_qs(struct task_struct *t, u8 old, u8 new)
-{
-       return cmpxchg(&t->trc_reader_special.b.need_qs, old, new);
-}
-EXPORT_SYMBOL_GPL(rcu_trc_cmpxchg_need_qs);
-
 /* Add a newly blocked reader task to its CPU's list. */
 void rcu_tasks_trace_qs_blkd(struct task_struct *t)
 {
-- 
2.40.1


Reply via email to