sched: Make hrtick_notifier an explicit call
No need for an extra notifier. We don't need to handle all these states. It's sufficient to kill the timer when the cpu dies. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Peter Zijlstra <peterz@infradead.org> Cc: rt@linutronix.de Link: http://lkml.kernel.org/r/20160310120025.770528462@linutronix.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
20a5c8cc74
commit
e5ef27d0f5
@ -249,29 +249,6 @@ void hrtick_start(struct rq *rq, u64 delay)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
hotplug_hrtick(struct notifier_block *nfb, unsigned long action, void *hcpu)
|
|
||||||
{
|
|
||||||
int cpu = (int)(long)hcpu;
|
|
||||||
|
|
||||||
switch (action) {
|
|
||||||
case CPU_UP_CANCELED:
|
|
||||||
case CPU_UP_CANCELED_FROZEN:
|
|
||||||
case CPU_DOWN_PREPARE:
|
|
||||||
case CPU_DOWN_PREPARE_FROZEN:
|
|
||||||
case CPU_DEAD:
|
|
||||||
case CPU_DEAD_FROZEN:
|
|
||||||
hrtick_clear(cpu_rq(cpu));
|
|
||||||
return NOTIFY_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NOTIFY_DONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static __init void init_hrtick(void)
|
|
||||||
{
|
|
||||||
hotcpu_notifier(hotplug_hrtick, 0);
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
/*
|
/*
|
||||||
* Called to set the hrtick timer state.
|
* Called to set the hrtick timer state.
|
||||||
@ -288,10 +265,6 @@ void hrtick_start(struct rq *rq, u64 delay)
|
|||||||
hrtimer_start(&rq->hrtick_timer, ns_to_ktime(delay),
|
hrtimer_start(&rq->hrtick_timer, ns_to_ktime(delay),
|
||||||
HRTIMER_MODE_REL_PINNED);
|
HRTIMER_MODE_REL_PINNED);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void init_hrtick(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_SMP */
|
#endif /* CONFIG_SMP */
|
||||||
|
|
||||||
static void init_rq_hrtick(struct rq *rq)
|
static void init_rq_hrtick(struct rq *rq)
|
||||||
@ -315,10 +288,6 @@ static inline void hrtick_clear(struct rq *rq)
|
|||||||
static inline void init_rq_hrtick(struct rq *rq)
|
static inline void init_rq_hrtick(struct rq *rq)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void init_hrtick(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_SCHED_HRTICK */
|
#endif /* CONFIG_SCHED_HRTICK */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -7132,6 +7101,7 @@ int sched_cpu_dying(unsigned int cpu)
|
|||||||
calc_load_migrate(rq);
|
calc_load_migrate(rq);
|
||||||
update_max_interval();
|
update_max_interval();
|
||||||
nohz_balance_exit_idle(cpu);
|
nohz_balance_exit_idle(cpu);
|
||||||
|
hrtick_clear(rq);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -7157,8 +7127,6 @@ void __init sched_init_smp(void)
|
|||||||
cpumask_set_cpu(smp_processor_id(), non_isolated_cpus);
|
cpumask_set_cpu(smp_processor_id(), non_isolated_cpus);
|
||||||
mutex_unlock(&sched_domains_mutex);
|
mutex_unlock(&sched_domains_mutex);
|
||||||
|
|
||||||
init_hrtick();
|
|
||||||
|
|
||||||
/* Move init over to a non-isolated CPU */
|
/* Move init over to a non-isolated CPU */
|
||||||
if (set_cpus_allowed_ptr(current, non_isolated_cpus) < 0)
|
if (set_cpus_allowed_ptr(current, non_isolated_cpus) < 0)
|
||||||
BUG();
|
BUG();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user