Merge tag 'v4.0' into p/abusse/merge_upgrade
authorAnselm Busse <anselm.busse@tu-berlin.de>
Mon, 18 Jan 2016 20:19:17 +0000 (21:19 +0100)
committerAnselm Busse <anselm.busse@tu-berlin.de>
Mon, 18 Jan 2016 20:19:17 +0000 (21:19 +0100)
Linux 4.0

# Conflicts:
# kernel/sched/Makefile

17 files changed:
1  2 
.gitignore
Makefile
arch/x86/Kconfig.debug
include/asm-generic/vmlinux.lds.h
include/linux/sched.h
init/main.c
kernel/cpu.c
kernel/sched/cfs/Makefile
kernel/sched/cfs/auto_group.c
kernel/sched/cfs/core.c
kernel/sched/cfs/debug.c
kernel/sched/cfs/fair.c
kernel/sched/cfs/rt.c
kernel/sched/cfs/sched.h
kernel/sched/cfs/stats.c
kernel/sched/idle.c
kernel/sysctl.c

diff --cc .gitignore
Simple merge
diff --cc Makefile
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc init/main.c
Simple merge
diff --cc kernel/cpu.c
Simple merge
index 92dccfd,0000000..51c3591
mode 100644,000000..100644
--- /dev/null
@@@ -1,19 -1,0 +1,19 @@@
- CFLAGS_REMOVE_clock.o = -pg
 +ifdef CONFIG_FUNCTION_TRACER
++CFLAGS_REMOVE_clock.o = $(CC_FLAGS_FTRACE)
 +endif
 +
 +ifneq ($(CONFIG_SCHED_OMIT_FRAME_POINTER),y)
 +# According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
 +# needed for x86 only.  Why this used to be enabled for all architectures is beyond
 +# me.  I suspect most platforms don't need this, but until we know that for sure
 +# I turn this off for IA-64 only.  Andreas Schwab says it's also needed on m68k
 +# to get a correct value for the wait-channel (WCHAN in ps). --davidm
 +CFLAGS_core.o := $(PROFILING) -fno-omit-frame-pointer
 +endif
 +
 +obj-y += core.o proc.o cputime.o
 +obj-y += idle_task.o fair.o rt.o deadline.o stop_task.o
 +obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o
 +obj-$(CONFIG_SCHED_AUTOGROUP) += auto_group.o
 +obj-$(CONFIG_SCHEDSTATS) += stats.o
 +obj-$(CONFIG_SCHED_DEBUG) += debug.o
Simple merge
@@@ -2761,28 -2705,18 +2711,31 @@@ again
   *          - explicit schedule() call
   *          - return from syscall or exception to user-space
   *          - return from interrupt-handler to user-space
+  *
+  * WARNING: all callers must re-check need_resched() afterward and reschedule
+  * accordingly in case an event triggered the need for rescheduling (such as
+  * an interrupt waking up a task) while preemption was disabled in __schedule().
   */
 +//void print_rb_nodes(struct rq *rq) {
 +//    struct task_struct *p;
 +//
 +//    if (!rq->cfs.rb_leftmost)
 +//            return;
 +//
 +//    p = pick_next_task(rq);
 +//    if (rq->cfs.rb_leftmost)
 +//            print_rb_nodes(rq);
 +//    put_prev_task(rq, p);
 +//
 +//    printk("%i ", p->pid);
 +//}
  static void __sched __schedule(void)
  {
        struct task_struct *prev, *next;
        unsigned long *switch_count;
        struct rq *rq;
 -      int cpu;
 +      int i, cpu;
  
- need_resched:
        preempt_disable();
        cpu = smp_processor_id();
        rq = cpu_rq(cpu);
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/sysctl.c
Simple merge