summarylogtreecommitdiffstats
path: root/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch
diff options
context:
space:
mode:
Diffstat (limited to '0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch')
-rw-r--r--0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch101
1 files changed, 101 insertions, 0 deletions
diff --git a/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch b/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch
new file mode 100644
index 000000000000..bc1743ff6cde
--- /dev/null
+++ b/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch
@@ -0,0 +1,101 @@
+From 9c459cce9a715b7e5881b3bc4782eb7e7368066c Mon Sep 17 00:00:00 2001
+From: Frederic Weisbecker <frederic@kernel.org>
+Date: Tue, 8 Feb 2022 17:16:33 +0100
+Subject: [PATCH 4/7] tick/rcu: Remove obsolete rcu_needs_cpu() parameters
+
+With the removal of CONFIG_RCU_FAST_NO_HZ, the parameters in
+rcu_needs_cpu() are not necessary anymore. Simply remove them.
+
+Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Paul E. McKenney <paulmck@kernel.org>
+Cc: Paul Menzel <pmenzel@molgen.mpg.de>
+---
+ include/linux/rcutiny.h | 3 +--
+ include/linux/rcutree.h | 2 +-
+ kernel/rcu/tree.c | 3 +--
+ kernel/time/tick-sched.c | 10 ++++------
+ 4 files changed, 7 insertions(+), 11 deletions(-)
+
+diff --git a/include/linux/rcutiny.h b/include/linux/rcutiny.h
+index 858f4d429946..5fed476f977f 100644
+--- a/include/linux/rcutiny.h
++++ b/include/linux/rcutiny.h
+@@ -64,9 +64,8 @@ static inline void rcu_softirq_qs(void)
+ rcu_tasks_qs(current, (preempt)); \
+ } while (0)
+
+-static inline int rcu_needs_cpu(u64 basemono, u64 *nextevt)
++static inline int rcu_needs_cpu(void)
+ {
+- *nextevt = KTIME_MAX;
+ return 0;
+ }
+
+diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h
+index 53209d669400..6cc91291d078 100644
+--- a/include/linux/rcutree.h
++++ b/include/linux/rcutree.h
+@@ -19,7 +19,7 @@
+
+ void rcu_softirq_qs(void);
+ void rcu_note_context_switch(bool preempt);
+-int rcu_needs_cpu(u64 basem, u64 *nextevt);
++int rcu_needs_cpu(void);
+ void rcu_cpu_stall_reset(void);
+
+ /*
+diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
+index 73a4c9d07b86..5dae0da879ae 100644
+--- a/kernel/rcu/tree.c
++++ b/kernel/rcu/tree.c
+@@ -1086,9 +1086,8 @@ void rcu_irq_enter_irqson(void)
+ * Just check whether or not this CPU has non-offloaded RCU callbacks
+ * queued.
+ */
+-int rcu_needs_cpu(u64 basemono, u64 *nextevt)
++int rcu_needs_cpu(void)
+ {
+- *nextevt = KTIME_MAX;
+ return !rcu_segcblist_empty(&this_cpu_ptr(&rcu_data)->cblist) &&
+ !rcu_rdp_is_offloaded(this_cpu_ptr(&rcu_data));
+ }
+diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
+index c89f50a7e690..566ad5bd83e9 100644
+--- a/kernel/time/tick-sched.c
++++ b/kernel/time/tick-sched.c
+@@ -785,7 +785,7 @@ static inline bool local_timer_softirq_pending(void)
+
+ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu)
+ {
+- u64 basemono, next_tick, next_tmr, next_rcu, delta, expires;
++ u64 basemono, next_tick, delta, expires;
+ unsigned long basejiff;
+ unsigned int seq;
+
+@@ -808,7 +808,7 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu)
+ * minimal delta which brings us back to this place
+ * immediately. Lather, rinse and repeat...
+ */
+- if (rcu_needs_cpu(basemono, &next_rcu) || arch_needs_cpu() ||
++ if (rcu_needs_cpu() || arch_needs_cpu() ||
+ irq_work_needs_cpu() || local_timer_softirq_pending()) {
+ next_tick = basemono + TICK_NSEC;
+ } else {
+@@ -819,10 +819,8 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu)
+ * disabled this also looks at the next expiring
+ * hrtimer.
+ */
+- next_tmr = get_next_timer_interrupt(basejiff, basemono);
+- ts->next_timer = next_tmr;
+- /* Take the next rcu event into account */
+- next_tick = next_rcu < next_tmr ? next_rcu : next_tmr;
++ next_tick = get_next_timer_interrupt(basejiff, basemono);
++ ts->next_timer = next_tick;
+ }
+
+ /*
+--
+2.35.2
+