public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Mike Galbraith <efault@gmx.de>, Oleg Nesterov <oleg@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: [PATCH 09/89] sched/wake_q: Move the wake-queue types and interfaces from sched.h into <linux/sched/wake_q.h>
Date: Mon,  6 Feb 2017 14:28:12 +0100	[thread overview]
Message-ID: <1486387772-18837-10-git-send-email-mingo@kernel.org> (raw)
In-Reply-To: <1486387772-18837-1-git-send-email-mingo@kernel.org>

Note that this requires the basic task->wake_q type to be an opaque void *.

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>
---
 include/linux/sched.h           | 52 +---------------------------------------------------
 include/linux/sched/wake_q.h    | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ipc/mqueue.c                    |  1 +
 ipc/msg.c                       |  1 +
 ipc/sem.c                       |  1 +
 kernel/fork.c                   |  2 +-
 kernel/futex.c                  |  1 +
 kernel/locking/mutex.c          |  1 +
 kernel/locking/rtmutex.c        |  1 +
 kernel/locking/rtmutex_common.h |  1 +
 kernel/locking/rwsem-xadd.c     |  3 ++-
 kernel/sched/core.c             |  6 +++---
 kernel/sched/sched.h            |  1 +
 13 files changed, 69 insertions(+), 56 deletions(-)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index ebc11bb42c49..e973a0f5550c 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -961,56 +961,6 @@ void force_schedstat_enabled(void);
 # define SCHED_FIXEDPOINT_SHIFT	10
 # define SCHED_FIXEDPOINT_SCALE	(1L << SCHED_FIXEDPOINT_SHIFT)
 
-/*
- * Wake-queues are lists of tasks with a pending wakeup, whose
- * callers have already marked the task as woken internally,
- * and can thus carry on. A common use case is being able to
- * do the wakeups once the corresponding user lock as been
- * released.
- *
- * We hold reference to each task in the list across the wakeup,
- * thus guaranteeing that the memory is still valid by the time
- * the actual wakeups are performed in wake_up_q().
- *
- * One per task suffices, because there's never a need for a task to be
- * in two wake queues simultaneously; it is forbidden to abandon a task
- * in a wake queue (a call to wake_up_q() _must_ follow), so if a task is
- * already in a wake queue, the wakeup will happen soon and the second
- * waker can just skip it.
- *
- * The DEFINE_WAKE_Q macro declares and initializes the list head.
- * wake_up_q() does NOT reinitialize the list; it's expected to be
- * called near the end of a function. Otherwise, the list can be
- * re-initialized for later re-use by wake_q_init().
- *
- * Note that this can cause spurious wakeups. schedule() callers
- * must ensure the call is done inside a loop, confirming that the
- * wakeup condition has in fact occurred.
- */
-struct wake_q_node {
-	struct wake_q_node *next;
-};
-
-struct wake_q_head {
-	struct wake_q_node *first;
-	struct wake_q_node **lastp;
-};
-
-#define WAKE_Q_TAIL ((struct wake_q_node *) 0x01)
-
-#define DEFINE_WAKE_Q(name)				\
-	struct wake_q_head name = { WAKE_Q_TAIL, &name.first }
-
-static inline void wake_q_init(struct wake_q_head *head)
-{
-	head->first = WAKE_Q_TAIL;
-	head->lastp = &head->first;
-}
-
-extern void wake_q_add(struct wake_q_head *head,
-		       struct task_struct *task);
-extern void wake_up_q(struct wake_q_head *head);
-
 struct io_context;			/* See blkdev.h */
 
 
@@ -1507,7 +1457,7 @@ struct task_struct {
 	/* Protection of the PI data structures: */
 	raw_spinlock_t pi_lock;
 
-	struct wake_q_node wake_q;
+	void *wake_q;
 
 #ifdef CONFIG_RT_MUTEXES
 	/* PI waiters blocked on a rt_mutex held by this task */
diff --git a/include/linux/sched/wake_q.h b/include/linux/sched/wake_q.h
new file mode 100644
index 000000000000..9a32f17b6a5e
--- /dev/null
+++ b/include/linux/sched/wake_q.h
@@ -0,0 +1,54 @@
+#ifndef _LINUX_SCHED_WAKE_Q_H
+#define _LINUX_SCHED_WAKE_Q_H
+
+/*
+ * Wake-queues are lists of tasks with a pending wakeup, whose
+ * callers have already marked the task as woken internally,
+ * and can thus carry on. A common use case is being able to
+ * do the wakeups once the corresponding user lock as been
+ * released.
+ *
+ * We hold reference to each task in the list across the wakeup,
+ * thus guaranteeing that the memory is still valid by the time
+ * the actual wakeups are performed in wake_up_q().
+ *
+ * One per task suffices, because there's never a need for a task to be
+ * in two wake queues simultaneously; it is forbidden to abandon a task
+ * in a wake queue (a call to wake_up_q() _must_ follow), so if a task is
+ * already in a wake queue, the wakeup will happen soon and the second
+ * waker can just skip it.
+ *
+ * The DEFINE_WAKE_Q macro declares and initializes the list head.
+ * wake_up_q() does NOT reinitialize the list; it's expected to be
+ * called near the end of a function. Otherwise, the list can be
+ * re-initialized for later re-use by wake_q_init().
+ *
+ * Note that this can cause spurious wakeups. schedule() callers
+ * must ensure the call is done inside a loop, confirming that the
+ * wakeup condition has in fact occurred.
+ */
+struct wake_q_node {
+	struct wake_q_node *next;
+};
+
+struct wake_q_head {
+	struct wake_q_node *first;
+	struct wake_q_node **lastp;
+};
+
+#define WAKE_Q_TAIL ((struct wake_q_node *) 0x01)
+
+#define DEFINE_WAKE_Q(name)				\
+	struct wake_q_head name = { WAKE_Q_TAIL, &name.first }
+
+static inline void wake_q_init(struct wake_q_head *head)
+{
+	head->first = WAKE_Q_TAIL;
+	head->lastp = &head->first;
+}
+
+extern void wake_q_add(struct wake_q_head *head,
+		       struct task_struct *task);
+extern void wake_up_q(struct wake_q_head *head);
+
+#endif /* _LINUX_SCHED_WAKE_Q_H */
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index 7a2d8f0c8ae5..a604f1036067 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -35,6 +35,7 @@
 #include <linux/ipc_namespace.h>
 #include <linux/user_namespace.h>
 #include <linux/slab.h>
+#include <linux/sched/wake_q.h>
 
 #include <net/sock.h>
 #include "util.h"
diff --git a/ipc/msg.c b/ipc/msg.c
index e3e52ce01123..ecc387e573f6 100644
--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -31,6 +31,7 @@
 #include <linux/list.h>
 #include <linux/security.h>
 #include <linux/sched.h>
+#include <linux/sched/wake_q.h>
 #include <linux/syscalls.h>
 #include <linux/audit.h>
 #include <linux/seq_file.h>
diff --git a/ipc/sem.c b/ipc/sem.c
index 3ec5742b5640..c65dff526a9f 100644
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -82,6 +82,7 @@
 #include <linux/rwsem.h>
 #include <linux/nsproxy.h>
 #include <linux/ipc_namespace.h>
+#include <linux/sched/wake_q.h>
 
 #include <linux/uaccess.h>
 #include "util.h"
diff --git a/kernel/fork.c b/kernel/fork.c
index 077ce3b4c0ef..9aa2ca28a76c 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -538,7 +538,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node)
 #endif
 	tsk->splice_pipe = NULL;
 	tsk->task_frag.page = NULL;
-	tsk->wake_q.next = NULL;
+	tsk->wake_q = NULL;
 
 	account_kernel_stack(tsk, 1);
 
diff --git a/kernel/futex.c b/kernel/futex.c
index 0842c8ca534b..e41472f33c73 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -61,6 +61,7 @@
 #include <linux/nsproxy.h>
 #include <linux/ptrace.h>
 #include <linux/sched/rt.h>
+#include <linux/sched/wake_q.h>
 #include <linux/hugetlb.h>
 #include <linux/freezer.h>
 #include <linux/bootmem.h>
diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
index ad2d9e22697b..57f6311e2405 100644
--- a/kernel/locking/mutex.c
+++ b/kernel/locking/mutex.c
@@ -21,6 +21,7 @@
 #include <linux/ww_mutex.h>
 #include <linux/sched.h>
 #include <linux/sched/rt.h>
+#include <linux/sched/wake_q.h>
 #include <linux/export.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
index d340be3a488f..d4f798491361 100644
--- a/kernel/locking/rtmutex.c
+++ b/kernel/locking/rtmutex.c
@@ -15,6 +15,7 @@
 #include <linux/sched.h>
 #include <linux/sched/rt.h>
 #include <linux/sched/deadline.h>
+#include <linux/sched/wake_q.h>
 #include <linux/timer.h>
 
 #include "rtmutex_common.h"
diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h
index 990134617b4c..856dfff5c33a 100644
--- a/kernel/locking/rtmutex_common.h
+++ b/kernel/locking/rtmutex_common.h
@@ -13,6 +13,7 @@
 #define __KERNEL_RTMUTEX_COMMON_H
 
 #include <linux/rtmutex.h>
+#include <linux/sched/wake_q.h>
 
 /*
  * This is the control structure for tasks blocked on a rt_mutex,
diff --git a/kernel/locking/rwsem-xadd.c b/kernel/locking/rwsem-xadd.c
index 2ad8d8dc3bb1..4fe8d8ad4396 100644
--- a/kernel/locking/rwsem-xadd.c
+++ b/kernel/locking/rwsem-xadd.c
@@ -10,10 +10,11 @@
  * and Davidlohr Bueso <davidlohr@hp.com>. Based on mutexes.
  */
 #include <linux/rwsem.h>
-#include <linux/sched.h>
 #include <linux/init.h>
 #include <linux/export.h>
+#include <linux/sched.h>
 #include <linux/sched/rt.h>
+#include <linux/sched/wake_q.h>
 #include <linux/osq_lock.h>
 
 #include "rwsem.h"
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index e4aa470ed454..fed9625fa954 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -426,7 +426,7 @@ static bool set_nr_if_polling(struct task_struct *p)
 
 void wake_q_add(struct wake_q_head *head, struct task_struct *task)
 {
-	struct wake_q_node *node = &task->wake_q;
+	struct wake_q_node *node = (void *)&task->wake_q;
 
 	/*
 	 * Atomically grab the task, if ->wake_q is !nil already it means
@@ -455,11 +455,11 @@ void wake_up_q(struct wake_q_head *head)
 	while (node != WAKE_Q_TAIL) {
 		struct task_struct *task;
 
-		task = container_of(node, struct task_struct, wake_q);
+		task = container_of((void *)node, struct task_struct, wake_q);
 		BUG_ON(!task);
 		/* Task can safely be re-inserted now: */
 		node = node->next;
-		task->wake_q.next = NULL;
+		task->wake_q = NULL;
 
 		/*
 		 * wake_up_process() implies a wmb() to pair with the queueing
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 319fcf80930c..ebb66cdeff70 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/wake_q.h>
 #include <linux/u64_stats_sync.h>
 #include <linux/sched/deadline.h>
 #include <linux/kernel_stat.h>
-- 
2.7.4

  parent reply	other threads:[~2017-02-06 13:56 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-06 13:28 [PATCH 00/89] Major reorganization of <linux/sched.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 01/89] sched/core: Clean up comments Ingo Molnar
2017-02-06 13:28 ` [PATCH 02/89] delayacct: Include <uapi/linux/taskstats.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 03/89] sched/rq_clock: Consolidate the ordering of the rq_clock methods Ingo Molnar
2017-02-06 13:28 ` [PATCH 04/89] sched/core: Remove unnecessary #include headers Ingo Molnar
2017-02-06 13:28 ` [PATCH 05/89] sched/topology: Split out scheduler topology code from core.c into topology.c Ingo Molnar
2017-02-06 13:28 ` [PATCH 06/89] sched/topology: Split out scheduler topology interfaces from <linux/sched.h> into <linux/sched/topology.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 07/89] sched/idle: Create <linux/sched/idle.h> for idle CPU related definitions Ingo Molnar
2017-02-06 13:28 ` [PATCH 08/89] sched/idle: Move wake_up_if_idle prototype to <linux/sched/idle.h> Ingo Molnar
2017-02-06 13:28 ` Ingo Molnar [this message]
2017-02-06 13:28 ` [PATCH 10/89] sched/clock: Introduce <linux/sched/clock.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 11/89] sched/headers, delayacct: Move the 'struct task_delay_info' definition from <linux/sched.h> to <linux/delayacct.h> Ingo Molnar
2017-02-06 18:16   ` Linus Torvalds
2017-02-06 21:16     ` [PATCH v2 " Ingo Molnar
2017-02-06 13:28 ` [PATCH 12/89] sched/abi: Introduce <uapi/linux/sched/types.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 13/89] sched/loadavg: Move loadavg related definitions from <linux/sched.h> to <linux/sched/loadavg.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 14/89] sched/autogroup: Collect extern APIs into <linux/sched/autogroup.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 15/89] sched/autogroup: Rename auto_group.[ch] to autogroup.[ch] Ingo Molnar
2017-02-06 13:28 ` [PATCH 16/89] sched/idle: Move polling methods to <linux/sched/idle.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 17/89] sched/idle: Remove tsk_is_polling() Ingo Molnar
2017-02-06 13:28 ` [PATCH 18/89] sched/core: Move task->mm handling methods to <linux/sched/mm.h> Ingo Molnar
2017-02-06 14:28   ` Christoph Hellwig
2017-02-06 22:43     ` Ingo Molnar
2017-02-07  7:30       ` Ingo Molnar
2017-02-06 13:28 ` [PATCH 19/89] sched/core: Move task->mm coredumping related defines and methods from <linux/sched.h> to <linux/sched/coredump.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 20/89] sched/headers, signals: Separate out task_struct::signal and task_struct::sighand types and accessors into <linux/sched/signal.h> Ingo Molnar
2017-02-06 21:11   ` Linus Torvalds
2017-02-06 21:35     ` Ingo Molnar
2017-02-06 21:57       ` Linus Torvalds
2017-02-06 22:38         ` Ingo Molnar
2017-02-06 13:28 ` [PATCH 21/89] sched/headers: Remove unused 'task_can_switch_user()' prototype Ingo Molnar
2017-02-06 13:28 ` [PATCH 22/89] sched/headers: Move 'struct user_struct' definition and APIs to the new <linux/sched/user.h> header Ingo Molnar
2017-02-06 13:28 ` [PATCH 23/89] sched/headers, softlockup: Move softlockup detector watchdog methods to <linux/nmi.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 24/89] sched/headers: Remove #include <linux/capability.h> from <linux/sched.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 25/89] sched/headers, cgroups: Remove the threadgroup_change_*() wrappery Ingo Molnar
2017-02-06 13:28 ` [PATCH 26/89] sched/headers: Remove unused <linux/cgroup-defs.h> include from <linux/sched.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 27/89] sched/headers: Move 'struct pacct_struct' and 'struct cpu_itimer' form <linux/sched.h> to <linux/sched/signal.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 28/89] sched/cpufreq: Move the cpufreq interface to <linux/sched/cpufreq.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 29/89] sched/headers: Move more mm_struct related functionality from <linux/sched.h> to <linux/sched/mm.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 30/89] sched/headers: Move the 'init_mm' declaration from <linux/sched.h> to <linux/mm_types.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 31/89] sched/headers: Move in_vfork() from <linux/sched.h> to <linux/sched/mm.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 32/89] sched/numa: Split <linux/sched/numa_balancing.h> out of <linux/sched.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 33/89] sched/headers: Move the JOBCTL_ defines and methods from <linux/sched.h> to <linux/sched/jobctl.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 34/89] sched/core: Move <asm/paravirt.h> include to kernel/sched/sched.h Ingo Molnar
2017-02-06 13:28 ` [PATCH 35/89] kasan, sched/headers: Remove <linux/sched.h> from <linux/kasan.h> and uninline kasan_enable/disable_current() Ingo Molnar
2017-02-06 13:28 ` [PATCH 36/89] sched/headers: Remove <linux/cred.h> inclusion from <linux/sched.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 37/89] sched/headers: Remove <asm/ptrace.h> " Ingo Molnar
2017-02-06 13:28 ` [PATCH 38/89] sched/headers: Remove <linux/rtmutex.h> " Ingo Molnar
2017-02-06 13:28 ` [PATCH 39/89] sched/headers: Remove various unrelated headers " Ingo Molnar
2017-02-06 13:28 ` [PATCH 40/89] sched/headers: Move CONFIG_TASK_XACCT bits out of <linux/sched.h> into <linux/sched/xacct.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 41/89] sched/headers: Move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 42/89] sched/headers: Move the memalloc_noio_*() APIs to <linux/sched/mm.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 43/89] sched/headers: Remove <linux/gfp.h> include from <linux/sched.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 44/89] sched/headers: Move task statistics from <linux/sched.h> to <linux/sched/stat.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 45/89] mm/vmacache, sched/headers: Introduce 'struct vmacache' and move it from <linux/sched.h> to <linux/mm_types> Ingo Molnar
2017-02-06 13:28 ` [PATCH 46/89] sched/headers: Move the NOHZ APIs from <linux/sched.h> to <linux/sched/nohz.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 47/89] sched/headers: Move debugging functions from <linux/sched.h> to <linux/sched/debug.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 48/89] sched/headers, time/timekeeping: Move the xtime_update() prototype from <linux/sched.h> to <linux/time.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 49/89] sched/headers: Move <asm/current.h> include from the middle of <linux/sched.h> to the header portion Ingo Molnar
2017-02-06 13:28 ` [PATCH 50/89] sched/core: Convert ___assert_task_state() link time assert to BUILD_BUG_ON() Ingo Molnar
2017-02-06 13:28 ` [PATCH 51/89] sched/headers: Split hotplug CPU interfaces out of <linux/sched.h> into <linux/sched/hotplug.h> Ingo Molnar
2017-02-06 13:28 ` [PATCH 52/89] sched/headers: Split <linux/sched/task.h> out of <linux/sched.h> Ingo Molnar
2017-02-06 21:16   ` Linus Torvalds
2017-02-06 21:41     ` Ingo Molnar
2017-02-06 21:45       ` Ingo Molnar
2017-02-06 13:28 ` [PATCH 53/89] sched/headers: Simplify <linux/sched/task.h> dependencies Ingo Molnar
2017-02-06 13:28 ` [PATCH 54/89] sched/headers: Make the include/linux/sched/*.h headers build standalone Ingo Molnar
2017-02-06 13:28 ` [PATCH 55/89] sched/core: Clean up <linux/sched.h> structure predeclarations and remove stale entries Ingo Molnar
2017-02-06 13:28 ` [PATCH 56/89] sched/headers: Move the PREEMPT_COUNT defines from <linux/sched.h> to <linux/preempt.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 57/89] sched/headers: Split <linux/sched/task_stack> out of <linux/sched.h> Ingo Molnar
2017-02-06 21:21   ` Linus Torvalds
2017-02-06 21:54     ` Ingo Molnar
2017-02-07  8:07       ` Geert Uytterhoeven
2017-02-07  8:13         ` Ingo Molnar
2017-02-07  8:27           ` Geert Uytterhoeven
2017-02-07  9:45             ` Ingo Molnar
2017-02-07  9:54               ` Geert Uytterhoeven
2017-02-06 13:29 ` [PATCH 58/89] sched/headers: Move the 'root_task_group' declaration to <linux/sched/autogroup.h> Ingo Molnar
2017-02-06 14:52   ` Peter Zijlstra
2017-02-06 13:29 ` [PATCH 59/89] sched/core: Move the get_preempt_disable_ip() inline to sched/core.c Ingo Molnar
2017-02-06 13:29 ` [PATCH 60/89] signals: Split out <linux/signal_types.h> from <linux/signal.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 61/89] sched/headers: Reduce <linux/sched.h> signal API dependency Ingo Molnar
2017-02-06 13:29 ` [PATCH 62/89] mm/headers, sched/headers: Split <linux/mm_types_task.h> out of <linux/mm_types.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 63/89] sched/headers: Remove the <linux/mm_types.h> dependency from <linux/sched.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 64/89] sched/headers: Remove 'init_pid_ns' prototype " Ingo Molnar
2017-02-06 13:29 ` [PATCH 65/89] sched/headers: Move 'init_task' and 'init_thread_union' from <linux/sched.h> to <linux/sched/task.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 66/89] sched/headers: Use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 67/89] sched/headers: Move the task_lock()/unlock() APIs to <linux/sched/task.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 68/89] sched/headers: Split cputime functionality out of <linux/sched.h>, into <linux/sched/cputime.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 69/89] sched/headers: Move sched_info_on() and force_schedstat_enabled() from <linux/sched.h> to <linux/sched/stat.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 70/89] sched/core: Remove unused prefetch_stack() Ingo Molnar
2017-02-06 13:29 ` [PATCH 71/89] sched/headers, vfs/execve: Move the do_execve*() prototypes from <linux/sched.h> to <linux/binfmts.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 72/89] sched/headers: Move kstack_end() from <linux/sched.h> to <linux/sched/task_stack.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 73/89] sched/headers: Move exit_files() and exit_itimers() from <linux/sched.h> to <linux/sched/task.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 74/89] sched/headers: Move _init() prototypes from <linux/sched.h> to <linux/sched/init.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 75/89] sched/headers, timekeeping: Consolidate the timer tick function prototypes Ingo Molnar
2017-02-06 13:29 ` [PATCH 76/89] sched/headers, mm: Move 'struct tlbflush_unmap_batch' from <linux/sched.h> to <linux/mm_types_task.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 77/89] sched/headers: Move the get_task_struct()/put_task_struct() and related APIs from <linux/sched.h> to <linux/sched/task.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 78/89] sched/core: Remove the tsk_cpus_allowed() wrapper Ingo Molnar
2017-02-06 14:53   ` Peter Zijlstra
2017-02-06 14:59   ` Peter Zijlstra
2017-02-06 22:03     ` Ingo Molnar
2017-02-07  8:06       ` Peter Zijlstra
2017-02-06 13:29 ` [PATCH 79/89] sched/core: Remove the tsk_nr_cpus_allowed() wrapper Ingo Molnar
2017-02-06 13:29 ` [PATCH 80/89] sched/headers: Move the <linux/magic.h> include to <linux/sched/task_stack.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 81/89] sched/headers: Remove spurious <linux/sched.h> inclusion dependencies Ingo Molnar
2017-02-06 13:29 ` [PATCH 82/89] rcu: Separate the rcu synchronization types and APIs into <linux/rcupdate_wait.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 83/89] timers: Remove the <linux/sysctl.h> include from <linux/timer.h> Ingo Molnar
2017-02-06 13:29 ` [PATCH 84/89] x86/apic: Remove the <linux/pm.h> header inclusion from <asm/apic.h> Ingo Molnar
2017-02-06 13:33 ` [PATCH 85/89] hrtimer: Remove the <linux/wait.h> include from <linux/hrtimer.h> Ingo Molnar
2017-02-06 13:34 ` [PATCH 86/89] sched/headers: Remove the <linux/topology.h> include from <linux/sched.h> Ingo Molnar
2017-02-06 13:34 ` [PATCH 87/89] sched/headers: Move the sched_exec() prototype to <linux/sched/task.h> Ingo Molnar
2017-02-06 13:35 ` [PATCH 88/89] sched/headers: Remove #ifdefs from <linux/sched.h> Ingo Molnar
2017-02-06 21:26   ` Linus Torvalds
2017-02-06 13:36 ` [PATCH 89/89] sched/headers: Clean up <linux/sched.h> Ingo Molnar
2017-02-06 13:39 ` [PATCH 00/89] Major reorganization of <linux/sched.h> Ingo Molnar
2017-02-06 21:31 ` Linus Torvalds
2017-02-06 22:13   ` Ingo Molnar
2017-02-07  8:08     ` Peter Zijlstra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1486387772-18837-10-git-send-email-mingo@kernel.org \
    --to=mingo@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox