Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f5cfd3d authored by Johannes Weiner's avatar Johannes Weiner Committed by Patrick Daly
Browse files

sched: loadavg: consolidate LOAD_INT, LOAD_FRAC, CALC_LOAD

There are several definitions of those functions/macros in places that
mess with fixed-point load averages.  Provide an official version.

[akpm@linux-foundation.org: fix missed conversion in block/blk-iolatency.c]
Link: http://lkml.kernel.org/r/20180828172258.3185-5-hannes@cmpxchg.org


Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: default avatarSuren Baghdasaryan <surenb@google.com>
Tested-by: default avatarDaniel Drake <drake@endlessm.com>
Cc: Christopher Lameter <cl@linux.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Johannes Weiner <jweiner@fb.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Enderborg <peter.enderborg@sony.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Vinayak Menon <vinmenon@codeaurora.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Change-Id: I4a80de69163ba101eda09bc28d7121bab0e452aa
Git-commit: 8508cf3ffad4defa202b303e5b6379efc4cd9054
Git-repo: https://source.codeaurora.org/quic/la/kernel/msm-4.19


[pdaly@codeaurora.org: resolved block/blk-iolatency conflict]
Signed-off-by: default avatarPatrick Daly <pdaly@codeaurora.org>
parent 9c29ace3
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -49,7 +49,7 @@ static int calc_freq(struct spu_gov_info_struct *info)
	cpu = info->policy->cpu;
	cpu = info->policy->cpu;
	busy_spus = atomic_read(&cbe_spu_info[cpu_to_node(cpu)].busy_spus);
	busy_spus = atomic_read(&cbe_spu_info[cpu_to_node(cpu)].busy_spus);


	CALC_LOAD(info->busy_spus, EXP, busy_spus * FIXED_1);
	info->busy_spus = calc_load(info->busy_spus, EXP, busy_spus * FIXED_1);
	pr_debug("cpu %d: busy_spus=%d, info->busy_spus=%ld\n",
	pr_debug("cpu %d: busy_spus=%d, info->busy_spus=%ld\n",
			cpu, busy_spus, info->busy_spus);
			cpu, busy_spus, info->busy_spus);


+3 −6
Original line number Original line Diff line number Diff line
@@ -987,9 +987,9 @@ static void spu_calc_load(void)
	unsigned long active_tasks; /* fixed-point */
	unsigned long active_tasks; /* fixed-point */


	active_tasks = count_active_contexts() * FIXED_1;
	active_tasks = count_active_contexts() * FIXED_1;
	CALC_LOAD(spu_avenrun[0], EXP_1, active_tasks);
	spu_avenrun[0] = calc_load(spu_avenrun[0], EXP_1, active_tasks);
	CALC_LOAD(spu_avenrun[1], EXP_5, active_tasks);
	spu_avenrun[1] = calc_load(spu_avenrun[1], EXP_5, active_tasks);
	CALC_LOAD(spu_avenrun[2], EXP_15, active_tasks);
	spu_avenrun[2] = calc_load(spu_avenrun[2], EXP_15, active_tasks);
}
}


static void spusched_wake(struct timer_list *unused)
static void spusched_wake(struct timer_list *unused)
@@ -1071,9 +1071,6 @@ void spuctx_switch_state(struct spu_context *ctx,
	}
	}
}
}


#define LOAD_INT(x) ((x) >> FSHIFT)
#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)

static int show_spu_loadavg(struct seq_file *s, void *private)
static int show_spu_loadavg(struct seq_file *s, void *private)
{
{
	int a, b, c;
	int a, b, c;
+0 −4
Original line number Original line Diff line number Diff line
@@ -25,10 +25,6 @@


#include "appldata.h"
#include "appldata.h"



#define LOAD_INT(x) ((x) >> FSHIFT)
#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)

/*
/*
 * OS data
 * OS data
 *
 *
+0 −4
Original line number Original line Diff line number Diff line
@@ -131,10 +131,6 @@ struct menu_device {
	int		interval_ptr;
	int		interval_ptr;
};
};



#define LOAD_INT(x) ((x) >> FSHIFT)
#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)

static inline int get_loadavg(unsigned long load)
static inline int get_loadavg(unsigned long load)
{
{
	return LOAD_INT(load) * 10 + LOAD_FRAC(load) / 10;
	return LOAD_INT(load) * 10 + LOAD_FRAC(load) / 10;
+0 −3
Original line number Original line Diff line number Diff line
@@ -10,9 +10,6 @@
#include <linux/seqlock.h>
#include <linux/seqlock.h>
#include <linux/time.h>
#include <linux/time.h>


#define LOAD_INT(x) ((x) >> FSHIFT)
#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)

static int loadavg_proc_show(struct seq_file *m, void *v)
static int loadavg_proc_show(struct seq_file *m, void *v)
{
{
	unsigned long avnrun[3];
	unsigned long avnrun[3];
Loading