All of lore.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 07/53] sched/headers, delayacct: Move the 'struct task_delay_info' definition from <linux/sched.h> to <linux/delayacct.h>
Date: Wed,  8 Feb 2017 19:44:38 +0100	[thread overview]
Message-ID: <1486579524-14901-8-git-send-email-mingo@kernel.org> (raw)
In-Reply-To: <1486579524-14901-1-git-send-email-mingo@kernel.org>

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: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 include/linux/delayacct.h | 36 ++++++++++++++++++++++++++++++++++++
 include/linux/sched.h     | 39 ++++-----------------------------------
 2 files changed, 40 insertions(+), 35 deletions(-)

diff --git a/include/linux/delayacct.h b/include/linux/delayacct.h
index 00e60f79a9cc..6b769cbd1000 100644
--- a/include/linux/delayacct.h
+++ b/include/linux/delayacct.h
@@ -30,7 +30,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 0399e1b29dd2..15e339af7dec 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -897,39 +897,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)
 {
@@ -1612,9 +1580,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
-- 
2.7.4

  parent reply	other threads:[~2017-02-08 18:46 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-08 18:44 [PATCH 00/53] sched.h modernization -v2, phase #3: "Move definitions between headers" Ingo Molnar
2017-02-08 18:44 ` [PATCH 01/53] sched/headers: Move scheduler topology interfaces to <linux/sched/topology.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 02/53] sched/headers: Move the 'cpu_idle_type' enum from <linux/sched.h> to <linux/sched/idle.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 03/53] sched/headers: Move the wake_up_if_idle() prototype " Ingo Molnar
2017-02-08 18:44 ` [PATCH 04/53] sched/headers: Move idle polling methods " Ingo Molnar
2017-02-08 18:44 ` [PATCH 05/53] sched/headers: Move the wake-queue types and interfaces from sched.h into <linux/sched/wake_q.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 06/53] sched/headers: Move scheduler clock interfaces to <linux/sched/clock.h> Ingo Molnar
2017-02-08 18:44 ` Ingo Molnar [this message]
2017-02-08 18:44 ` [PATCH 08/53] sched/headers: Move various ABI definitions to <uapi/linux/sched/types.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 09/53] sched/headers: Move loadavg related definitions from <linux/sched.h> to <linux/sched/loadavg.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 10/53] sched/headers: Move autogroup APIs into <linux/sched/autogroup.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 11/53] sched/headers: Move task->mm handling methods to <linux/sched/mm.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 12/53] sched/headers: Move task->mm coredumping related defines and methods from <linux/sched.h> to <linux/sched/coredump.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 13/53] sched/headers: Move task_struct::signal and task_struct::sighand types and accessors into <linux/sched/signal.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 14/53] sched/headers: Move 'struct user_struct' definition and APIs to the new <linux/sched/user.h> header Ingo Molnar
2017-02-08 20:13   ` Linus Torvalds
2017-02-08 21:22     ` Ingo Molnar
2017-02-08 18:44 ` [PATCH 15/53] sched/headers: Move softlockup detector watchdog methods to <linux/nmi.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 16/53] sched/headers: Move 'struct pacct_struct' and 'struct cpu_itimer' form <linux/sched.h> to <linux/sched/signal.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 17/53] sched/headers: Move the cpufreq interfaces to <linux/sched/cpufreq.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 18/53] sched/headers: Move more mm_struct related functionality from <linux/sched.h> to <linux/sched/mm.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 19/53] sched/headers: Move the 'init_mm' declaration from <linux/sched.h> to <linux/mm_types.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 20/53] sched/headers: Move in_vfork() from <linux/sched.h> to <linux/sched/mm.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 21/53] sched/headers: Move the NUMA balancing interfaces from <linux/sched.h> to <linux/sched/numa_balancing.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 22/53] sched/headers: Move the JOBCTL_ defines and methods from <linux/sched.h> to <linux/sched/jobctl.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 23/53] sched/headers: Remove various unrelated headers from <linux/sched.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 24/53] sched/headers: Move CONFIG_TASK_XACCT bits from <linux/sched.h> to <linux/sched/xacct.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 25/53] sched/headers: Move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 26/53] sched/headers: Move the memalloc_noio_*() APIs to <linux/sched/mm.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 27/53] sched/headers: Move task statistics APIs from <linux/sched.h> to <linux/sched/stat.h> Ingo Molnar
2017-02-08 18:44 ` [PATCH 28/53] sched/headers: Move the NOHZ APIs from <linux/sched.h> to <linux/sched/nohz.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 29/53] sched/headers: Move debugging functions from <linux/sched.h> to <linux/sched/debug.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 30/53] sched/headers, time/timekeeping: Move the xtime_update() prototype from <linux/sched.h> to <linux/time.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 31/53] sched/headers: Move <asm/current.h> include from the middle of <linux/sched.h> to the header portion Ingo Molnar
2017-02-08 18:45 ` [PATCH 32/53] sched/headers: Split hotplug CPU interfaces out of <linux/sched.h> into <linux/sched/hotplug.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 33/53] sched/headers: Move task lifetime APIs from <linux/sched.h> to <linux/sched/task.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 34/53] sched/headers, RCU: Move rcu_copy_process() from <linux/sched/task.h> to kernel/fork.c Ingo Molnar
2017-02-08 18:45 ` [PATCH 35/53] sched/core: Move, sort and clean up <linux/sched.h> structure predeclarations Ingo Molnar
2017-02-08 18:45 ` [PATCH 36/53] sched/headers: Move the PREEMPT_COUNT defines from <linux/sched.h> to <linux/preempt.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 37/53] sched/headers: Move task-stack related APIs from <linux/sched.h> to <linux/sched/task_stack.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 38/53] sched/headers: Move the 'root_task_group' declaration to <linux/sched/autogroup.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 39/53] signals: Move signal data types from <linux/signal.h> to <linux/signal_types.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 40/53] mm/headers, sched/headers: Move task related MM types from <linux/mm_types.> to <linux/mm_types_task.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 41/53] sched/headers: Remove the <linux/mm_types.h> dependency from <linux/sched.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 42/53] sched/headers: Move 'init_task' and 'init_thread_union' from <linux/sched.h> to <linux/sched/task.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 43/53] sched/headers: Move the task_lock()/unlock() APIs " Ingo Molnar
2017-02-08 18:45 ` [PATCH 44/53] sched/headers: Move cputime functionality from <linux/sched.h> and <linux/cputime.h> into <linux/sched/cputime.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 45/53] sched/headers: Move sched_info_on() and force_schedstat_enabled() from <linux/sched.h> to <linux/sched/stat.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 46/53] sched/headers, vfs/execve: Move the do_execve*() prototypes from <linux/sched.h> to <linux/binfmts.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 47/53] sched/headers: Move kstack_end() from <linux/sched.h> to <linux/sched/task_stack.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 48/53] sched/headers: Move exit_files() and exit_itimers() from <linux/sched.h> to <linux/sched/task.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 49/53] sched/headers: Move _init() prototypes from <linux/sched.h> to <linux/sched/init.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 50/53] sched/headers, timekeeping: Move the timer tick function prototypes to <linux/timekeeping.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 51/53] sched/headers, mm: Move 'struct tlbflush_unmap_batch' from <linux/sched.h> to <linux/mm_types_task.h> Ingo Molnar
2017-02-08 18:45 ` [PATCH 52/53] 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-08 18:45 ` [PATCH 53/53] sched/headers: Move the sched_exec() prototype " Ingo Molnar

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=1486579524-14901-8-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.