Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1355059
| From | Thomas Gleixner <tglx@linutronix.de> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [patch 14/15] sched/fair: Make ilb_notifier an explicit call |
| Date | 2016-03-10 13:10 +0100 |
| Message-ID | <rb7zI-6OQ-11@gated-at.bofh.it> (permalink) |
| References | <rb7zI-6OQ-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
No need for an extra notifier.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
kernel/sched/core.c | 1 +
kernel/sched/fair.c | 15 +--------------
kernel/sched/sched.h | 4 ++++
3 files changed, 6 insertions(+), 14 deletions(-)
Index: b/kernel/sched/core.c
===================================================================
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -7363,6 +7363,7 @@ int sched_cpu_dying(unsigned int cpu)
raw_spin_unlock_irqrestore(&rq->lock, flags);
calc_load_migrate(rq);
update_max_interval();
+ nohz_balance_exit_idle(cpu);
return 0;
}
Index: b/kernel/sched/fair.c
===================================================================
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -7602,7 +7602,7 @@ static void nohz_balancer_kick(void)
return;
}
-static inline void nohz_balance_exit_idle(int cpu)
+void nohz_balance_exit_idle(unsigned int cpu)
{
if (unlikely(test_bit(NOHZ_TICK_STOPPED, nohz_flags(cpu)))) {
/*
@@ -7675,18 +7675,6 @@ void nohz_balance_enter_idle(int cpu)
atomic_inc(&nohz.nr_cpus);
set_bit(NOHZ_TICK_STOPPED, nohz_flags(cpu));
}
-
-static int sched_ilb_notifier(struct notifier_block *nfb,
- unsigned long action, void *hcpu)
-{
- switch (action & ~CPU_TASKS_FROZEN) {
- case CPU_DYING:
- nohz_balance_exit_idle(smp_processor_id());
- return NOTIFY_OK;
- default:
- return NOTIFY_DONE;
- }
-}
#endif
static DEFINE_SPINLOCK(balancing);
@@ -8486,7 +8474,6 @@ void show_numa_stats(struct task_struct
#ifdef CONFIG_NO_HZ_COMMON
nohz.next_balance = jiffies;
zalloc_cpumask_var(&nohz.idle_cpus_mask, GFP_NOWAIT);
- cpu_notifier(sched_ilb_notifier, 0);
#endif
#endif /* SMP */
Index: b/kernel/sched/sched.h
===================================================================
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1688,6 +1688,10 @@ enum rq_nohz_flag_bits {
};
#define nohz_flags(cpu) (&cpu_rq(cpu)->nohz_flags)
+
+extern void nohz_balance_exit_idle(unsigned int cpu);
+#else
+static inline void nohz_balance_exit_idle(unsigned int cpu) { }
#endif
#ifdef CONFIG_IRQ_TIME_ACCOUNTING
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[patch 00/15] cpu/hotplug: Convert scheduler to hotplug state machine Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 14/15] sched/fair: Make ilb_notifier an explicit call Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 07/15] sched/hotplug: Convert cpu_[in]active notifiers to state machine Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 01/15] cpu/hotplug: Document states better Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 10/15] sched/migration: Move calc_load_migrate() into CPU_DYING Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 13/15] sched/hotplug: Make activate() the last hotplug step Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 05/15] sched: Consolidate the notifier maze Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 09/15] sched/migration: Move prepare transition to SCHED_STARTING state Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 08/15] sched, hotplug: Move sync_rcu to be with set_cpu_active(false) Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 06/15] sched: Move sched_domains_numa_masks_clear() to DOWN_PREPARE Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 11/15] sched/migration: Move CPU_ONLINE into scheduler state Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 03/15] sched: Make set_cpu_rq_start_time() a built in hotplug state Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 12/15] sched/hotplug: Move migration CPU_DYING to sched_cpu_dying() Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 15/15] sched: Make hrtick_notifier an explicit call Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:10 +0100 [patch 04/15] sched: Allow hotplug notifiers to be setup early Thomas Gleixner <tglx@linutronix.de> - 2016-03-10 13:20 +0100
csiph-web