[PATCH 09/53] sched/headers: Move loadavg related definitions from <linux/sched.h> to <linux/sched/loadavg.h>
From: Ingo Molnar
Date: Wed Feb 08 2017  13:46:17 EST
Move these bits to <linux/sched/loadavg.h>, to reduce the size and
complexity of <linux/sched.h>.
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linuxkernel@xxxxxxxxxxxxxxx
Signedoffby: Ingo Molnar <mingo@xxxxxxxxxx>

include/linux/sched.h  27 
include/linux/sched/loadavg.h  27 +++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 27 deletions()
diff git a/include/linux/sched.h b/include/linux/sched.h
index 9c907c5a3f82..1e087cf2cba5 100644
 a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ 71,31 +71,6 @@ struct blk_plug;
struct filename;
struct nameidata;
/*
 * These are the constant used to fake the fixedpoint loadaverage
 * counting. Some notes:
 *  11 bit fractions expand to 22 bits by the multiplies: this gives
 * a loadaverage precision of 10 bits integer + 11 bits fractional
 *  if you want to count loadaverages more often, you need more
 * precision, or rounding will get you. With 2second counting freq,
 * the EXP_n values would be 1981, 2034 and 2043 if still using only
 * 11 bit fractions.
 */
extern unsigned long avenrun[]; /* Load averages */
extern void get_avenrun(unsigned long *loads, unsigned long offset, int shift);

#define FSHIFT 11 /* nr of bits of precision */
#define FIXED_1 (1<<FSHIFT) /* 1.0 as fixedpoint */
#define LOAD_FREQ (5*HZ+1) /* 5 sec intervals */
#define EXP_1 1884 /* 1/exp(5sec/1min) as fixedpoint */
#define EXP_5 2014 /* 1/exp(5sec/5min) */
#define EXP_15 2037 /* 1/exp(5sec/15min) */

#define CALC_LOAD(load,exp,n) \
 load *= exp; \
 load += n*(FIXED_1exp); \
 load >>= FSHIFT;

extern unsigned long total_forks;
extern int nr_threads;
DECLARE_PER_CPU(unsigned long, process_counts);
@@ 106,8 +81,6 @@ 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);
extern void calc_global_load(unsigned long ticks);

#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/loadavg.h b/include/linux/sched/loadavg.h
index 3ae74be327e8..c392e28ce0ac 100644
 a/include/linux/sched/loadavg.h
+++ b/include/linux/sched/loadavg.h
@@ 3,4 +3,31 @@
#include <linux/sched.h>
+/*
+ * These are the constant used to fake the fixedpoint loadaverage
+ * counting. Some notes:
+ *  11 bit fractions expand to 22 bits by the multiplies: this gives
+ * a loadaverage precision of 10 bits integer + 11 bits fractional
+ *  if you want to count loadaverages more often, you need more
+ * precision, or rounding will get you. With 2second counting freq,
+ * the EXP_n values would be 1981, 2034 and 2043 if still using only
+ * 11 bit fractions.
+ */
+extern unsigned long avenrun[]; /* Load averages */
+extern void get_avenrun(unsigned long *loads, unsigned long offset, int shift);
+
+#define FSHIFT 11 /* nr of bits of precision */
+#define FIXED_1 (1<<FSHIFT) /* 1.0 as fixedpoint */
+#define LOAD_FREQ (5*HZ+1) /* 5 sec intervals */
+#define EXP_1 1884 /* 1/exp(5sec/1min) as fixedpoint */
+#define EXP_5 2014 /* 1/exp(5sec/5min) */
+#define EXP_15 2037 /* 1/exp(5sec/15min) */
+
+#define CALC_LOAD(load,exp,n) \
+ load *= exp; \
+ load += n*(FIXED_1exp); \
+ load >>= FSHIFT;
+
+extern void calc_global_load(unsigned long ticks);
+
#endif /* _LINUX_SCHED_LOADAVG_H */

2.7.4