Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1576883

[PATCH 27/53] sched/headers: Move task statistics APIs from <linux/sched.h> to <linux/sched/stat.h>

From Ingo Molnar <mingo@kernel.org>
Newsgroups linux.kernel
Subject [PATCH 27/53] sched/headers: Move task statistics APIs from <linux/sched.h> to <linux/sched/stat.h>
Date 2017-02-08 20:00 +0100
Message-ID <t8FDd-3VT-59@gated-at.bofh.it> (permalink)
References <t8Ftw-3Sf-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


There are a number of task statistics related variables and methods exported
via sched.h - collect them into <linux/sched/stat.h> and include it from
their usage sites.

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/sched.h      | 10 ----------
 include/linux/sched/stat.h | 18 ++++++++++++++++++
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index ce17ae4516b2..b4f0d9888d8c 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -46,16 +46,6 @@ struct nameidata;
 struct signal_struct;
 struct sighand_struct;
 
-extern unsigned long total_forks;
-extern int nr_threads;
-DECLARE_PER_CPU(unsigned long, process_counts);
-extern int nr_processes(void);
-extern unsigned long nr_running(void);
-extern bool single_task_running(void);
-extern unsigned long nr_iowait(void);
-extern unsigned long nr_iowait_cpu(int cpu);
-extern void get_iowait_load(unsigned long *nr_waiters, unsigned long *load);
-
 #if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ_COMMON)
 extern void cpu_load_update_nohz_start(void);
 extern void cpu_load_update_nohz_stop(void);
diff --git a/include/linux/sched/stat.h b/include/linux/sched/stat.h
index 30fe012aecb0..0d52ceb6d3ae 100644
--- a/include/linux/sched/stat.h
+++ b/include/linux/sched/stat.h
@@ -3,4 +3,22 @@
 
 #include <linux/sched.h>
 
+/*
+ * Various counters maintained by the scheduler and fork(),
+ * exposed via /proc, sys.c or used by drivers via these APIs.
+ *
+ * ( Note that all these values are aquired without locking,
+ *   so they can only be relied on in narrow circumstances. )
+ */
+
+extern unsigned long total_forks;
+extern int nr_threads;
+DECLARE_PER_CPU(unsigned long, process_counts);
+extern int nr_processes(void);
+extern unsigned long nr_running(void);
+extern bool single_task_running(void);
+extern unsigned long nr_iowait(void);
+extern unsigned long nr_iowait_cpu(int cpu);
+extern void get_iowait_load(unsigned long *nr_waiters, unsigned long *load);
+
 #endif /* _LINUX_SCHED_STAT_H */
-- 
2.7.4

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 00/53] sched.h modernization -v2, phase #3: "Move definitions between headers" Ingo Molnar <mingo@kernel.org> - 2017-02-08 19:50 +0100
  [PATCH 04/53] sched/headers: Move idle polling methods to <linux/sched/idle.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 19:50 +0100
  [PATCH 16/53] sched/headers: Move 'struct pacct_struct' and 'struct cpu_itimer' form <linux/sched.h> to <linux/sched/signal.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 19:50 +0100
  [PATCH 05/53] sched/headers: Move the wake-queue types and interfaces from sched.h into <linux/sched/wake_q.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 19:50 +0100
  [PATCH 26/53] sched/headers: Move the memalloc_noio_*() APIs to <linux/sched/mm.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 19:50 +0100
  [PATCH 28/53] sched/headers: Move the NOHZ APIs from <linux/sched.h> to <linux/sched/nohz.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 19:50 +0100
  [PATCH 34/53] sched/headers, RCU: Move rcu_copy_process() from <linux/sched/task.h> to kernel/fork.c Ingo Molnar <mingo@kernel.org> - 2017-02-08 19:50 +0100
  [PATCH 30/53] sched/headers, time/timekeeping: Move the xtime_update() prototype from <linux/sched.h> to <linux/time.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 19:50 +0100
  [PATCH 17/53] sched/headers: Move the cpufreq interfaces to <linux/sched/cpufreq.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 11/53] sched/headers: Move task->mm handling methods to <linux/sched/mm.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 48/53] sched/headers: Move exit_files() and exit_itimers() from <linux/sched.h> to <linux/sched/task.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 08/53] sched/headers: Move various ABI definitions to <uapi/linux/sched/types.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 19/53] sched/headers: Move the 'init_mm' declaration from <linux/sched.h> to <linux/mm_types.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 25/53] sched/headers: Move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 02/53] sched/headers: Move the 'cpu_idle_type' enum from <linux/sched.h> to <linux/sched/idle.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 50/53] sched/headers, timekeeping: Move the timer tick function prototypes to <linux/timekeeping.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 21/53] sched/headers: Move the NUMA balancing interfaces from <linux/sched.h> to <linux/sched/numa_balancing.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 31/53] sched/headers: Move <asm/current.h> include from the middle of <linux/sched.h> to the header portion Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 15/53] sched/headers: Move softlockup detector watchdog methods to <linux/nmi.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 29/53] sched/headers: Move debugging functions from <linux/sched.h> to <linux/sched/debug.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 27/53] sched/headers: Move task statistics APIs from <linux/sched.h> to <linux/sched/stat.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 23/53] sched/headers: Remove various unrelated headers from <linux/sched.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 13/53] sched/headers: Move task_struct::signal and task_struct::sighand types and accessors into <linux/sched/signal.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 18/53] sched/headers: Move more mm_struct related functionality from <linux/sched.h> to <linux/sched/mm.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 01/53] sched/headers: Move scheduler topology interfaces to <linux/sched/topology.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:00 +0100
  [PATCH 42/53] sched/headers: Move 'init_task' and 'init_thread_union' from <linux/sched.h> to <linux/sched/task.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:20 +0100
  [PATCH 49/53] sched/headers: Move _init() prototypes from <linux/sched.h> to <linux/sched/init.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:20 +0100
  [PATCH 41/53] sched/headers: Remove the <linux/mm_types.h> dependency from <linux/sched.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:20 +0100
  [PATCH 44/53] sched/headers: Move cputime functionality from <linux/sched.h> and <linux/cputime.h> into <linux/sched/cputime.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:20 +0100
  [PATCH 40/53] mm/headers, sched/headers: Move task related MM types from <linux/mm_types.> to <linux/mm_types_task.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:20 +0100
  [PATCH 43/53] sched/headers: Move the task_lock()/unlock() APIs to <linux/sched/task.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:20 +0100
  [PATCH 46/53] sched/headers, vfs/execve: Move the do_execve*() prototypes from <linux/sched.h> to <linux/binfmts.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:50 +0100
  [PATCH 53/53] sched/headers: Move the sched_exec() prototype to <linux/sched/task.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 20:50 +0100
  [PATCH 45/53] sched/headers: Move sched_info_on() and force_schedstat_enabled() from <linux/sched.h> to <linux/sched/stat.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 21:40 +0100
  [PATCH 51/53] sched/headers, mm: Move 'struct tlbflush_unmap_batch' from <linux/sched.h> to <linux/mm_types_task.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 21:40 +0100
  [PATCH 37/53] sched/headers: Move task-stack related APIs from <linux/sched.h> to <linux/sched/task_stack.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 21:50 +0100
  [PATCH 47/53] sched/headers: Move kstack_end() from <linux/sched.h> to <linux/sched/task_stack.h> Ingo Molnar <mingo@kernel.org> - 2017-02-08 22:40 +0100
  [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 <mingo@kernel.org> - 2017-02-09 00:10 +0100

csiph-web