mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-16 14:02:10 +00:00
rcu: Remove "cpu" argument to rcu_check_callbacks()
The "cpu" argument was kept around on the off-chance that RCU might offload scheduler-clock interrupts. However, this offload approach has been replaced by NO_HZ_FULL, which offloads -all- RCU processing from qualifying CPUs. It is therefore time to remove the "cpu" argument to rcu_check_callbacks(), which this commit does. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Pranith Kumar <bobby.prani@gmail.com>
This commit is contained in:
parent
11bbb235c2
commit
c3377c2da6
@ -260,7 +260,7 @@ static inline int rcu_preempt_depth(void)
|
|||||||
void rcu_init(void);
|
void rcu_init(void);
|
||||||
void rcu_sched_qs(void);
|
void rcu_sched_qs(void);
|
||||||
void rcu_bh_qs(void);
|
void rcu_bh_qs(void);
|
||||||
void rcu_check_callbacks(int cpu, int user);
|
void rcu_check_callbacks(int user);
|
||||||
struct notifier_block;
|
struct notifier_block;
|
||||||
void rcu_idle_enter(void);
|
void rcu_idle_enter(void);
|
||||||
void rcu_idle_exit(void);
|
void rcu_idle_exit(void);
|
||||||
|
@ -247,7 +247,7 @@ void rcu_bh_qs(void)
|
|||||||
* be called from hardirq context. It is normally called from the
|
* be called from hardirq context. It is normally called from the
|
||||||
* scheduling-clock interrupt.
|
* scheduling-clock interrupt.
|
||||||
*/
|
*/
|
||||||
void rcu_check_callbacks(int cpu, int user)
|
void rcu_check_callbacks(int user)
|
||||||
{
|
{
|
||||||
RCU_TRACE(check_cpu_stalls());
|
RCU_TRACE(check_cpu_stalls());
|
||||||
if (user || rcu_is_cpu_rrupt_from_idle())
|
if (user || rcu_is_cpu_rrupt_from_idle())
|
||||||
|
@ -2388,7 +2388,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
|
|||||||
* invoked from the scheduling-clock interrupt. If rcu_pending returns
|
* invoked from the scheduling-clock interrupt. If rcu_pending returns
|
||||||
* false, there is no point in invoking rcu_check_callbacks().
|
* false, there is no point in invoking rcu_check_callbacks().
|
||||||
*/
|
*/
|
||||||
void rcu_check_callbacks(int cpu, int user)
|
void rcu_check_callbacks(int user)
|
||||||
{
|
{
|
||||||
trace_rcu_utilization(TPS("Start scheduler-tick"));
|
trace_rcu_utilization(TPS("Start scheduler-tick"));
|
||||||
increment_cpu_stall_ticks();
|
increment_cpu_stall_ticks();
|
||||||
@ -2420,8 +2420,8 @@ void rcu_check_callbacks(int cpu, int user)
|
|||||||
|
|
||||||
rcu_bh_qs();
|
rcu_bh_qs();
|
||||||
}
|
}
|
||||||
rcu_preempt_check_callbacks(cpu);
|
rcu_preempt_check_callbacks(smp_processor_id());
|
||||||
if (rcu_pending(cpu))
|
if (rcu_pending(smp_processor_id()))
|
||||||
invoke_rcu_core();
|
invoke_rcu_core();
|
||||||
if (user)
|
if (user)
|
||||||
rcu_note_voluntary_context_switch(current);
|
rcu_note_voluntary_context_switch(current);
|
||||||
|
@ -1377,12 +1377,11 @@ unsigned long get_next_timer_interrupt(unsigned long now)
|
|||||||
void update_process_times(int user_tick)
|
void update_process_times(int user_tick)
|
||||||
{
|
{
|
||||||
struct task_struct *p = current;
|
struct task_struct *p = current;
|
||||||
int cpu = smp_processor_id();
|
|
||||||
|
|
||||||
/* Note: this timer irq context must be accounted for as well. */
|
/* Note: this timer irq context must be accounted for as well. */
|
||||||
account_process_tick(p, user_tick);
|
account_process_tick(p, user_tick);
|
||||||
run_local_timers();
|
run_local_timers();
|
||||||
rcu_check_callbacks(cpu, user_tick);
|
rcu_check_callbacks(user_tick);
|
||||||
#ifdef CONFIG_IRQ_WORK
|
#ifdef CONFIG_IRQ_WORK
|
||||||
if (in_irq())
|
if (in_irq())
|
||||||
irq_work_tick();
|
irq_work_tick();
|
||||||
|
Loading…
Reference in New Issue
Block a user