Merge tag 'v3.14' into p/abusse/merge_upgrade
authorAnselm Busse <anselm.busse@tu-berlin.de>
Mon, 18 Jan 2016 15:06:07 +0000 (16:06 +0100)
committerAnselm Busse <anselm.busse@tu-berlin.de>
Mon, 18 Jan 2016 15:06:07 +0000 (16:06 +0100)
Linux 3.14

# Conflicts:
# .gitignore
# include/linux/sched.h
# kernel/sched/Makefile

15 files changed:
1  2 
.gitignore
Makefile
arch/x86/Kconfig.debug
include/linux/sched.h
init/main.c
kernel/sched/Makefile
kernel/sched/cfs/Makefile
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/stop_task.c
kernel/sched/modsched/Makefile
kernel/sysctl.c

diff --cc .gitignore
@@@ -93,5 -93,5 +93,8 @@@ signing_key.pri
  signing_key.x509
  x509.genkey
  
+ # Kconfig presets
+ all.config
++
 +# Build directory
 +/build/
diff --cc Makefile
Simple merge
Simple merge
@@@ -56,10 -57,70 +57,74 @@@ struct sched_param 
  
  #include <asm/processor.h>
  
+ #define SCHED_ATTR_SIZE_VER0  48      /* sizeof first published struct */
+ /*
+  * Extended scheduling parameters data structure.
+  *
+  * This is needed because the original struct sched_param can not be
+  * altered without introducing ABI issues with legacy applications
+  * (e.g., in sched_getparam()).
+  *
+  * However, the possibility of specifying more than just a priority for
+  * the tasks may be useful for a wide variety of application fields, e.g.,
+  * multimedia, streaming, automation and control, and many others.
+  *
+  * This variant (sched_attr) is meant at describing a so-called
+  * sporadic time-constrained task. In such model a task is specified by:
+  *  - the activation period or minimum instance inter-arrival time;
+  *  - the maximum (or average, depending on the actual scheduling
+  *    discipline) computation time of all instances, a.k.a. runtime;
+  *  - the deadline (relative to the actual activation time) of each
+  *    instance.
+  * Very briefly, a periodic (sporadic) task asks for the execution of
+  * some specific computation --which is typically called an instance--
+  * (at most) every period. Moreover, each instance typically lasts no more
+  * than the runtime and must be completed by time instant t equal to
+  * the instance activation time + the deadline.
+  *
+  * This is reflected by the actual fields of the sched_attr structure:
+  *
+  *  @size             size of the structure, for fwd/bwd compat.
+  *
+  *  @sched_policy     task's scheduling policy
+  *  @sched_flags      for customizing the scheduler behaviour
+  *  @sched_nice               task's nice value      (SCHED_NORMAL/BATCH)
+  *  @sched_priority   task's static priority (SCHED_FIFO/RR)
+  *  @sched_deadline   representative of the task's deadline
+  *  @sched_runtime    representative of the task's runtime
+  *  @sched_period     representative of the task's period
+  *
+  * Given this task model, there are a multiplicity of scheduling algorithms
+  * and policies, that can be used to ensure all the tasks will make their
+  * timing constraints.
+  *
+  * As of now, the SCHED_DEADLINE policy (sched_dl scheduling class) is the
+  * only user of this new interface. More information about the algorithm
+  * available in the scheduling class file or in Documentation/.
+  */
+ struct sched_attr {
+       u32 size;
+       u32 sched_policy;
+       u64 sched_flags;
+       /* SCHED_NORMAL, SCHED_BATCH */
+       s32 sched_nice;
+       /* SCHED_FIFO, SCHED_RR */
+       u32 sched_priority;
+       /* SCHED_DEADLINE */
+       u64 sched_runtime;
+       u64 sched_deadline;
+       u64 sched_period;
+ };
 +#ifdef CONFIG_MOD_SCHED
 +#include <fw_task.h>
 +#endif
 +
  struct exec_domain;
  struct futex_pi_state;
  struct robust_list_head;
diff --cc init/main.c
Simple merge
@@@ -1,7 -1,21 +1,8 @@@
 -ifdef CONFIG_FUNCTION_TRACER
 -CFLAGS_REMOVE_clock.o = -pg
 -endif
 +KBUILD_CFLAGS += -Ikernel/sched/
  
 -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 clock.o cputime.o
 -obj-y += idle_task.o fair.o rt.o deadline.o stop_task.o
++obj-y += clock.o
  obj-y += wait.o completion.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
  obj-$(CONFIG_CGROUP_CPUACCT) += cpuacct.o
 +obj-$(CONFIG_CFS_SCHED) += cfs/
 +obj-$(CONFIG_MOD_SCHED) += modsched/
index 807f912,0000000..92dccfd
mode 100644,000000..100644
--- /dev/null
@@@ -1,18 -1,0 +1,19 @@@
- obj-y += core.o proc.o clock.o cputime.o idle_task.o fair.o rt.o stop_task.o
- obj-$(CONFIG_SMP) += cpupri.o
 +ifdef CONFIG_FUNCTION_TRACER
 +CFLAGS_REMOVE_clock.o = -pg
 +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
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 30493d8,0000000..c5fb316
mode 100644,000000..100644
--- /dev/null
@@@ -1,16 -1,0 +1,16 @@@
- obj-y += core.o clock.o cputime.o
 +ifdef CONFIG_FUNCTION_TRACER
 +CFLAGS_REMOVE_clock.o = -pg
 +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 += cputime.o
 +
 +obj-y += framework/os/linux/
diff --cc kernel/sysctl.c
Simple merge