lkml.org 
[lkml]   [2017]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 51/89] sched/headers: Split hotplug CPU interfaces out of <linux/sched.h> into <linux/sched/hotplug.h>
    Date
    Split the CPU hotplug scheduler APIs out of the common header
    and update the usage sites.

    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    ---
    arch/arm/kernel/smp.c | 1 +
    arch/arm64/include/asm/mmu_context.h | 1 +
    arch/arm64/kernel/smp.c | 1 +
    arch/ia64/kernel/process.c | 1 +
    arch/metag/kernel/smp.c | 1 +
    arch/mips/cavium-octeon/smp.c | 1 +
    arch/mips/kernel/smp-bmips.c | 1 +
    arch/mips/kernel/smp-cps.c | 1 +
    arch/mips/loongson64/loongson-3/smp.c | 1 +
    arch/powerpc/platforms/85xx/smp.c | 1 +
    arch/powerpc/platforms/powermac/smp.c | 1 +
    arch/powerpc/platforms/powernv/smp.c | 1 +
    arch/powerpc/platforms/pseries/hotplug-cpu.c | 1 +
    arch/s390/kernel/smp.c | 1 +
    arch/sh/kernel/smp.c | 1 +
    arch/sparc/kernel/smp_64.c | 1 +
    arch/x86/kernel/smpboot.c | 1 +
    arch/xtensa/kernel/smp.c | 1 +
    include/linux/sched.h | 15 ---------------
    include/linux/sched/hotplug.h | 24 ++++++++++++++++++++++++
    kernel/cpu.c | 1 +
    kernel/sched/core.c | 1 +
    kernel/sched/sched.h | 4 +++-
    23 files changed, 47 insertions(+), 16 deletions(-)

    diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
    index 7dd14e8395e6..cbad704bd8c8 100644
    --- a/arch/arm/kernel/smp.c
    +++ b/arch/arm/kernel/smp.c
    @@ -12,6 +12,7 @@
    #include <linux/init.h>
    #include <linux/spinlock.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/interrupt.h>
    #include <linux/cache.h>
    #include <linux/profile.h>
    diff --git a/arch/arm64/include/asm/mmu_context.h b/arch/arm64/include/asm/mmu_context.h
    index 0363fe80455c..c517c3c2f194 100644
    --- a/arch/arm64/include/asm/mmu_context.h
    +++ b/arch/arm64/include/asm/mmu_context.h
    @@ -21,6 +21,7 @@

    #include <linux/compiler.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>

    #include <asm/cacheflush.h>
    #include <asm/cpufeature.h>
    diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
    index cb87234cfcf2..1091a611e037 100644
    --- a/arch/arm64/kernel/smp.c
    +++ b/arch/arm64/kernel/smp.c
    @@ -22,6 +22,7 @@
    #include <linux/init.h>
    #include <linux/spinlock.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/interrupt.h>
    #include <linux/cache.h>
    #include <linux/profile.h>
    diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
    index 804b251ee5d1..2204ae450d65 100644
    --- a/arch/ia64/kernel/process.c
    +++ b/arch/ia64/kernel/process.c
    @@ -21,6 +21,7 @@
    #include <linux/personality.h>
    #include <linux/sched.h>
    #include <linux/sched/debug.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/stddef.h>
    #include <linux/thread_info.h>
    #include <linux/unistd.h>
    diff --git a/arch/metag/kernel/smp.c b/arch/metag/kernel/smp.c
    index bad13232de51..142707513ba3 100644
    --- a/arch/metag/kernel/smp.c
    +++ b/arch/metag/kernel/smp.c
    @@ -13,6 +13,7 @@
    #include <linux/init.h>
    #include <linux/spinlock.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/interrupt.h>
    #include <linux/cache.h>
    #include <linux/profile.h>
    diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
    index 256fe6f65cf2..7264ab69cd4c 100644
    --- a/arch/mips/cavium-octeon/smp.c
    +++ b/arch/mips/cavium-octeon/smp.c
    @@ -11,6 +11,7 @@
    #include <linux/interrupt.h>
    #include <linux/kernel_stat.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/module.h>

    #include <asm/mmu_context.h>
    diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c
    index 6d0f1321e084..a84785fbb6eb 100644
    --- a/arch/mips/kernel/smp-bmips.c
    +++ b/arch/mips/kernel/smp-bmips.c
    @@ -10,6 +10,7 @@

    #include <linux/init.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/mm.h>
    #include <linux/delay.h>
    #include <linux/smp.h>
    diff --git a/arch/mips/kernel/smp-cps.c b/arch/mips/kernel/smp-cps.c
    index 6183ad84cc73..06a674e23a99 100644
    --- a/arch/mips/kernel/smp-cps.c
    +++ b/arch/mips/kernel/smp-cps.c
    @@ -12,6 +12,7 @@
    #include <linux/io.h>
    #include <linux/irqchip/mips-gic.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/slab.h>
    #include <linux/smp.h>
    #include <linux/types.h>
    diff --git a/arch/mips/loongson64/loongson-3/smp.c b/arch/mips/loongson64/loongson-3/smp.c
    index 99aab9f85904..987b774ec9c6 100644
    --- a/arch/mips/loongson64/loongson-3/smp.c
    +++ b/arch/mips/loongson64/loongson-3/smp.c
    @@ -17,6 +17,7 @@
    #include <linux/init.h>
    #include <linux/cpu.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/smp.h>
    #include <linux/cpufreq.h>
    #include <asm/processor.h>
    diff --git a/arch/powerpc/platforms/85xx/smp.c b/arch/powerpc/platforms/85xx/smp.c
    index a83a6d26090d..078097a0b09d 100644
    --- a/arch/powerpc/platforms/85xx/smp.c
    +++ b/arch/powerpc/platforms/85xx/smp.c
    @@ -12,6 +12,7 @@

    #include <linux/stddef.h>
    #include <linux/kernel.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/init.h>
    #include <linux/delay.h>
    #include <linux/of.h>
    diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
    index c9eb7d6540ea..746ca7321b03 100644
    --- a/arch/powerpc/platforms/powermac/smp.c
    +++ b/arch/powerpc/platforms/powermac/smp.c
    @@ -23,6 +23,7 @@
    */
    #include <linux/kernel.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/smp.h>
    #include <linux/interrupt.h>
    #include <linux/kernel_stat.h>
    diff --git a/arch/powerpc/platforms/powernv/smp.c b/arch/powerpc/platforms/powernv/smp.c
    index c789258ae1e1..b15a2e08b31c 100644
    --- a/arch/powerpc/platforms/powernv/smp.c
    +++ b/arch/powerpc/platforms/powernv/smp.c
    @@ -12,6 +12,7 @@
    #include <linux/kernel.h>
    #include <linux/module.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/smp.h>
    #include <linux/interrupt.h>
    #include <linux/delay.h>
    diff --git a/arch/powerpc/platforms/pseries/hotplug-cpu.c b/arch/powerpc/platforms/pseries/hotplug-cpu.c
    index a1b63e00b2f7..7bc0e91f8715 100644
    --- a/arch/powerpc/platforms/pseries/hotplug-cpu.c
    +++ b/arch/powerpc/platforms/pseries/hotplug-cpu.c
    @@ -24,6 +24,7 @@
    #include <linux/interrupt.h>
    #include <linux/delay.h>
    #include <linux/sched.h> /* for idle_task_exit */
    +#include <linux/sched/hotplug.h>
    #include <linux/cpu.h>
    #include <linux/of.h>
    #include <linux/slab.h>
    diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
    index e49f61aadaf9..e6f29aae962b 100644
    --- a/arch/s390/kernel/smp.c
    +++ b/arch/s390/kernel/smp.c
    @@ -31,6 +31,7 @@
    #include <linux/irqflags.h>
    #include <linux/cpu.h>
    #include <linux/slab.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/crash_dump.h>
    #include <linux/memblock.h>
    #include <asm/asm-offsets.h>
    diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c
    index 38e7860845db..a8c4d5785290 100644
    --- a/arch/sh/kernel/smp.c
    +++ b/arch/sh/kernel/smp.c
    @@ -21,6 +21,7 @@
    #include <linux/cpu.h>
    #include <linux/interrupt.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/atomic.h>
    #include <linux/clockchips.h>
    #include <asm/processor.h>
    diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
    index 0ce347f8e4cc..64e4acc9dd40 100644
    --- a/arch/sparc/kernel/smp_64.c
    +++ b/arch/sparc/kernel/smp_64.c
    @@ -6,6 +6,7 @@
    #include <linux/export.h>
    #include <linux/kernel.h>
    #include <linux/sched.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/mm.h>
    #include <linux/pagemap.h>
    #include <linux/threads.h>
    diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
    index 0fe89249d9ac..ab848319c17c 100644
    --- a/arch/x86/kernel/smpboot.c
    +++ b/arch/x86/kernel/smpboot.c
    @@ -46,6 +46,7 @@
    #include <linux/export.h>
    #include <linux/sched.h>
    #include <linux/sched/topology.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/percpu.h>
    #include <linux/bootmem.h>
    #include <linux/err.h>
    diff --git a/arch/xtensa/kernel/smp.c b/arch/xtensa/kernel/smp.c
    index fc4ad21a5ed4..2b5a7ee12900 100644
    --- a/arch/xtensa/kernel/smp.c
    +++ b/arch/xtensa/kernel/smp.c
    @@ -21,6 +21,7 @@
    #include <linux/irq.h>
    #include <linux/kdebug.h>
    #include <linux/module.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/reboot.h>
    #include <linux/seq_file.h>
    #include <linux/smp.h>
    diff --git a/include/linux/sched.h b/include/linux/sched.h
    index 41ca94a982b6..45ee3bf791ab 100644
    --- a/include/linux/sched.h
    +++ b/include/linux/sched.h
    @@ -188,15 +188,6 @@ extern void cpu_init (void);
    extern void trap_init(void);
    extern void update_process_times(int user);
    extern void scheduler_tick(void);
    -extern int sched_cpu_starting(unsigned int cpu);
    -extern int sched_cpu_activate(unsigned int cpu);
    -extern int sched_cpu_deactivate(unsigned int cpu);
    -
    -#ifdef CONFIG_HOTPLUG_CPU
    -extern int sched_cpu_dying(unsigned int cpu);
    -#else
    -# define sched_cpu_dying NULL
    -#endif

    #define MAX_SCHEDULE_TIMEOUT LONG_MAX
    extern signed long schedule_timeout(signed long timeout);
    @@ -1492,12 +1483,6 @@ extern void sched_exec(void);
    #define sched_exec() {}
    #endif

    -#ifdef CONFIG_HOTPLUG_CPU
    -extern void idle_task_exit(void);
    -#else
    -static inline void idle_task_exit(void) {}
    -#endif
    -
    extern int yield_to(struct task_struct *p, bool preempt);
    extern void set_user_nice(struct task_struct *p, long nice);
    extern int task_prio(const struct task_struct *p);
    diff --git a/include/linux/sched/hotplug.h b/include/linux/sched/hotplug.h
    new file mode 100644
    index 000000000000..752ac7e628d7
    --- /dev/null
    +++ b/include/linux/sched/hotplug.h
    @@ -0,0 +1,24 @@
    +#ifndef _LINUX_SCHED_HOTPLUG_H
    +#define _LINUX_SCHED_HOTPLUG_H
    +
    +/*
    + * Scheduler interfaces for hotplug CPU support:
    + */
    +
    +extern int sched_cpu_starting(unsigned int cpu);
    +extern int sched_cpu_activate(unsigned int cpu);
    +extern int sched_cpu_deactivate(unsigned int cpu);
    +
    +#ifdef CONFIG_HOTPLUG_CPU
    +extern int sched_cpu_dying(unsigned int cpu);
    +#else
    +# define sched_cpu_dying NULL
    +#endif
    +
    +#ifdef CONFIG_HOTPLUG_CPU
    +extern void idle_task_exit(void);
    +#else
    +static inline void idle_task_exit(void) {}
    +#endif
    +
    +#endif /* _LINUX_SCHED_HOTPLUG_H */
    diff --git a/kernel/cpu.c b/kernel/cpu.c
    index 0aae3183b029..78c206579d01 100644
    --- a/kernel/cpu.c
    +++ b/kernel/cpu.c
    @@ -8,6 +8,7 @@
    #include <linux/init.h>
    #include <linux/notifier.h>
    #include <linux/sched/signal.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/unistd.h>
    #include <linux/cpu.h>
    #include <linux/oom.h>
    diff --git a/kernel/sched/core.c b/kernel/sched/core.c
    index eee4ac12811a..e37d2097dd87 100644
    --- a/kernel/sched/core.c
    +++ b/kernel/sched/core.c
    @@ -10,6 +10,7 @@
    #include <linux/sched.h>
    #include <linux/sched/clock.h>
    #include <linux/sched/loadavg.h>
    +#include <linux/sched/hotplug.h>
    #include <linux/cpuset.h>
    #include <linux/delayacct.h>
    #include <linux/init_task.h>
    diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
    index e1e819f731b2..0974eb2ef50d 100644
    --- a/kernel/sched/sched.h
    +++ b/kernel/sched/sched.h
    @@ -3,6 +3,7 @@
    #include <linux/sched/sysctl.h>
    #include <linux/sched/topology.h>
    #include <linux/sched/rt.h>
    +#include <linux/sched/deadline.h>
    #include <linux/sched/clock.h>
    #include <linux/sched/wake_q.h>
    #include <linux/sched/signal.h>
    @@ -12,8 +13,9 @@
    #include <linux/sched/stat.h>
    #include <linux/sched/nohz.h>
    #include <linux/sched/debug.h>
    +#include <linux/sched/hotplug.h>
    +
    #include <linux/u64_stats_sync.h>
    -#include <linux/sched/deadline.h>
    #include <linux/kernel_stat.h>
    #include <linux/binfmts.h>
    #include <linux/mutex.h>
    --
    2.7.4
    \
     
     \ /
      Last update: 2017-02-06 14:31    [W:4.230 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site