scheduler fixes
Subsystems (3)
Ingo Molnar
maintainerLinus,
Please pull the latest sched-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-urgent-for-linus
HEAD: 6a4c96eef42f835734a82c6b512abf9881b7c55d sched: Remove NULL assignment of dattr_cur
Thanks,
Ingo
------------------>
Colin Cross (1):
sched/rt: Fix SCHED_RR across cgroups
Hiroshi Shimamoto (2):
sched: Make sched_feat_names const
sched: Remove the last NULL entry from sched_feat_names
Kamalesh Babulal (1):
sched: Remove NULL assignment of dattr_cur
Peter Zijlstra (6):
sched/x86: Use cpu_llc_shared_mask(cpu) for coregroup_mask sched/nohz: Fix rq->cpu_load calculations some more
sched: Don't try allocating memory from offline nodes
sched: Fix SD_OVERLAP
sched: Make sure to not re-read variables after validation
sched: Move nr_cpus_allowed out of 'struct sched_rt_entity'
arch/blackfin/kernel/process.c | 2 +- arch/x86/kernel/smpboot.c | 10 +------ include/linux/init_task.h | 2 +- include/linux/sched.h | 3 +- kernel/sched/core.c | 68 +++++++++++++++++++++++++++++++----------- kernel/sched/fair.c | 42 +++++++++++++++++++------- kernel/sched/rt.c | 51 ++++++++++++++++++------------- kernel/time/tick-sched.c | 1 + 8 files changed, 120 insertions(+), 59 deletions(-)
arch/blackfin/kernel/process.c +1 -1
@@ -173,7 +173,7 @@ asmlinkage int bfin_clone(struct pt_regs *regs)unsigned long newsp;#ifdef __ARCH_SYNC_CORE_DCACHE -if (current->rt.nr_cpus_allowed ==num_possible_cpus ()) +if (current->nr_cpus_allowed ==num_possible_cpus ())set_cpus_allowed_ptr (current,cpumask_of (smp_processor_id ()));#endif
arch/x86/kernel/smpboot.c +1 -9
@@ -410,15 +410,7 @@ void __cpuinit set_cpu_sibling_map(int cpu)/* maps the cpu to the sched domain representing multi-core */ const struct cpumask *cpu_coregroup_mask (int cpu) { -struct cpuinfo_x86 *c = &cpu_data (cpu); -/* -* For perf, we return last level cache shared map. -* And for power savings, we return cpu_core_map -*/ -if (!(cpu_has (c,X86_FEATURE_AMD_DCM ))) -return cpu_core_mask (cpu); -else -return cpu_llc_shared_mask (cpu); +return cpu_llc_shared_mask (cpu); }static void impress_friends (void )
include/linux/init_task.h +1 -1
@@ -149,6 +149,7 @@ extern struct cred init_cred; .normal_prio = MAX_PRIO-20, \ .policy = SCHED_NORMAL, \ .cpus_allowed = CPU_MASK_ALL, \ + .nr_cpus_allowed= NR_CPUS, \ .mm = NULL, \ .active_mm = &init_mm, \ .se = { \
@@ -157,7 +158,6 @@ extern struct cred init_cred; .rt = { \ .run_list = LIST_HEAD_INIT(tsk.rt.run_list), \ .time_slice = RR_TIMESLICE, \ - .nr_cpus_allowed = NR_CPUS, \ }, \ .tasks =LIST_HEAD_INIT (tsk.tasks), \INIT_PUSHABLE_TASKS (tsk) \
include/linux/sched.h +2 -1
@@ -145,6 +145,7 @@ extern unsigned long this_cpu_load(void);extern void calc_global_load (unsigned long ticks); +extern void update_cpu_load_nohz (void );extern unsigned long get_parent_ip (unsigned long addr);
@@ -1187,7 +1188,6 @@ struct sched_rt_entity {struct list_head run_list;unsigned long timeout;unsigned int time_slice; -int nr_cpus_allowed;struct sched_rt_entity *back;#ifdef CONFIG_RT_GROUP_SCHED
@@ -1252,6 +1252,7 @@ struct task_struct {#endif unsigned int policy; +int nr_cpus_allowed;cpumask_t cpus_allowed;#ifdef CONFIG_PREEMPT_RCU
kernel/sched/core.c +51 -17
129 lines not on this page · raw message
kernel/sched/fair.c +32 -10
65 lines not on this page · raw message
kernel/sched/rt.c +31 -20
152 lines not on this page · raw message
kernel/time/tick-sched.c +1 -0
@@ -576,6 +576,7 @@ void tick_nohz_idle_exit(void)/* Update jiffies first */ select_nohz_load_balancer (0 );tick_do_update_jiffies64 (now); +update_cpu_load_nohz ();#ifndef CONFIG_VIRT_CPU_ACCOUNTING /*