From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>,
"Paul E. McKenney" <paulmck@us.ibm.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@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 v2 11/89] sched/headers, delayacct: Move the 'struct task_delay_info' definition from <linux/sched.h> to <linux/delayacct.h>
Date: Mon, 6 Feb 2017 22:16:11 +0100 [thread overview]
Message-ID: <20170206211611.GA9788@gmail.com> (raw)
In-Reply-To: <CA+55aFxp8N7vHZmcG57qKJaDmEpcS49tmx54Z2n9RLdtMHoZiA@mail.gmail.com>
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Mon, Feb 6, 2017 at 5:28 AM, Ingo Molnar <mingo@kernel.org> wrote:
> > The 'struct task_delay_info' definition does not have to be in sched.h,
> > because task_struct only has a pointer to it.
> >
> > So move it to <linux/delayacct.h> to reduce the size of <linux/sched.h>.
> >
> > As an additional improvement make the type defined but empty in the
> > !CONFIG_TASK_DELAY_ACCT case - to eliminate the ugly #ifdef
> > around the task_struct field as well.
>
> No. This is completely wrong.
>
> Even if the structure is empty, the _pointer_ to the structure is not.
> So now you removed the #ifdef, and the 'struct task_struct' becomes
> unconditionally (and pointlessly) larger.
Yeah, indeed, that was a brainfart: I mixed it up with the cases where it's not
pointer-included but directly embedded in task_struct. In which case such a change
is valid, see for example:
[PATCH 88/89] sched/headers: Remove #ifdefs from <linux/sched.h>
So you are completely right, and this was a simple oversight on my part, and I've
fixed it with the patch attached below, with the fix folded back and the bogus
changelog fixed as well. The new WIP.sched/core is pushed out as of this minute,
with:
387691c93599 sched/headers, delayacct: Move the 'struct task_delay_info' definition from <linux/sched.h> to <linux/delayacct.h>
So this embarrasing episode never happened!
> So your removal if the #ifdef and making that structure empty is
> completely pointless: it wastes exactly the same amount of space even
> when it is empty, because that pointer stays around and is not an
> empty pointer.
>
> In general, I heartily approve of the sched.h split-up, but quite
> frankly, when there are almost a hundred patches, and a lot of them
> are pure code movement (so they are *big*, and essentially impossible
> to actually confirm), I *really* really think that this patch series
> should be re-done so that it does *not* make these kinds of "clever"
> changes.
>
> I'd be much happier if the cleanups were all completely non-semantic.
> Nothing like this. At least in the big patch series.
>
> Then you can have a separate series that does things that isn't just
> about code movement.
>
> Ok?
Yeah, absolutely, fully agreed!
> Because these emails aren't easy to read as-is (well, part of them are
> obvious, but others are "move a hundreds of lines from one file to
> another").
>
> And having to worry about "oh, and btw, hidden in the movement is this
> small semantic change that may or may not be completely and utterly
> bogus" makes it much much worse.
This semantic change was unintentional, an embarrasing bug in essence.
I too want to keep the series a data structure invariant for the reasons you
outlined, without any actual changes to the layout of task_struct et al.
I'll review the series once more to eliminate such changes.
There's one other very small change to generated code that was essential, the
uninlining of two RCU APIs in the RCU_TINY uniprocessor case, to be able to
decouple sched.h from completion.h:
[PATCH 82/89] rcu: Separate the rcu synchronization types and APIs into <linux/rcupdate_wait.h>
... but that has to be acked by Paul anyway.
I'll try to be very careful with all this, OK?
( I've done a fair amount of boot testing as well along the way, so I'm fairly
certain there's no harmful runtime effect - this bug caused an unintentional,
unused pointer that bloated task_struct by 8 on configs that had that option
off. Famous last words ... )
Thanks,
Ingo
=============================================================================
>From 387691c93599bc932f5c1c39b0d791d1cbca3cf7 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@kernel.org>
Date: Wed, 1 Feb 2017 18:00:26 +0100
Subject: [PATCH] sched/headers, delayacct: Move the 'struct task_delay_info' definition from <linux/sched.h> to <linux/delayacct.h>
The 'struct task_delay_info' definition does not have to be in sched.h,
because task_struct only has a pointer to it.
So move it to <linux/delayacct.h> to reduce the size of <linux/sched.h>.
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/delayacct.h | 38 ++++++++++++++++++++++++++++++++++++--
include/linux/sched.h | 39 ++++-----------------------------------
2 files changed, 40 insertions(+), 37 deletions(-)
diff --git a/include/linux/delayacct.h b/include/linux/delayacct.h
index 00e60f79a9cc..4178d2493547 100644
--- a/include/linux/delayacct.h
+++ b/include/linux/delayacct.h
@@ -18,8 +18,6 @@
#define _LINUX_DELAYACCT_H
#include <uapi/linux/taskstats.h>
-#include <linux/sched.h>
-#include <linux/slab.h>
/*
* Per-task flags relevant to delay accounting
@@ -30,7 +28,43 @@
#define DELAYACCT_PF_BLKIO 0x00000002 /* I am waiting on IO */
#ifdef CONFIG_TASK_DELAY_ACCT
+struct task_delay_info {
+ spinlock_t lock;
+ unsigned int flags; /* Private per-task flags */
+
+ /* For each stat XXX, add following, aligned appropriately
+ *
+ * struct timespec XXX_start, XXX_end;
+ * u64 XXX_delay;
+ * u32 XXX_count;
+ *
+ * Atomicity of updates to XXX_delay, XXX_count protected by
+ * single lock above (split into XXX_lock if contention is an issue).
+ */
+
+ /*
+ * XXX_count is incremented on every XXX operation, the delay
+ * associated with the operation is added to XXX_delay.
+ * XXX_delay contains the accumulated delay time in nanoseconds.
+ */
+ u64 blkio_start; /* Shared by blkio, swapin */
+ u64 blkio_delay; /* wait for sync block io completion */
+ u64 swapin_delay; /* wait for swapin block io completion */
+ u32 blkio_count; /* total count of the number of sync block */
+ /* io operations performed */
+ u32 swapin_count; /* total count of the number of swapin block */
+ /* io operations performed */
+
+ u64 freepages_start;
+ u64 freepages_delay; /* wait for memory reclaim */
+ u32 freepages_count; /* total count of memory reclaim */
+};
+#endif
+#include <linux/sched.h>
+#include <linux/slab.h>
+
+#ifdef CONFIG_TASK_DELAY_ACCT
extern int delayacct_on; /* Delay accounting turned on/off */
extern struct kmem_cache *delayacct_cache;
extern void delayacct_init(void);
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 4b49d159f4d5..59d28fd8e99b 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -901,39 +901,7 @@ struct sched_info {
};
#endif /* CONFIG_SCHED_INFO */
-#ifdef CONFIG_TASK_DELAY_ACCT
-struct task_delay_info {
- spinlock_t lock;
- unsigned int flags; /* Private per-task flags */
-
- /* For each stat XXX, add following, aligned appropriately
- *
- * struct timespec XXX_start, XXX_end;
- * u64 XXX_delay;
- * u32 XXX_count;
- *
- * Atomicity of updates to XXX_delay, XXX_count protected by
- * single lock above (split into XXX_lock if contention is an issue).
- */
-
- /*
- * XXX_count is incremented on every XXX operation, the delay
- * associated with the operation is added to XXX_delay.
- * XXX_delay contains the accumulated delay time in nanoseconds.
- */
- u64 blkio_start; /* Shared by blkio, swapin */
- u64 blkio_delay; /* wait for sync block io completion */
- u64 swapin_delay; /* wait for swapin block io completion */
- u32 blkio_count; /* total count of the number of sync block */
- /* io operations performed */
- u32 swapin_count; /* total count of the number of swapin block */
- /* io operations performed */
-
- u64 freepages_start;
- u64 freepages_delay; /* wait for memory reclaim */
- u32 freepages_count; /* total count of memory reclaim */
-};
-#endif /* CONFIG_TASK_DELAY_ACCT */
+struct task_delay_info;
static inline int sched_info_on(void)
{
@@ -1615,9 +1583,10 @@ struct task_struct {
struct page_frag task_frag;
-#ifdef CONFIG_TASK_DELAY_ACCT
- struct task_delay_info *delays;
+#ifdef CONFIG_TASK_DELAY_ACCT
+ struct task_delay_info *delays;
#endif
+
#ifdef CONFIG_FAULT_INJECTION
int make_it_fail;
#endif
next prev parent reply other threads:[~2017-02-06 21:16 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 ` [PATCH 09/89] sched/wake_q: Move the wake-queue types and interfaces from sched.h into <linux/sched/wake_q.h> Ingo Molnar
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 ` Ingo Molnar [this message]
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=20170206211611.GA9788@gmail.com \
--to=mingo@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=paulmck@us.ibm.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