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: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Tested-by: Suren Baghdasaryan <surenb@google.com> Tested-by: Daniel 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
此提交包含在:
@@ -49,7 +49,7 @@ static int calc_freq(struct spu_gov_info_struct *info)
|
||||
cpu = info->policy->cpu;
|
||||
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",
|
||||
cpu, busy_spus, info->busy_spus);
|
||||
|
||||
|
@@ -987,9 +987,9 @@ static void spu_calc_load(void)
|
||||
unsigned long active_tasks; /* fixed-point */
|
||||
|
||||
active_tasks = count_active_contexts() * FIXED_1;
|
||||
CALC_LOAD(spu_avenrun[0], EXP_1, active_tasks);
|
||||
CALC_LOAD(spu_avenrun[1], EXP_5, active_tasks);
|
||||
CALC_LOAD(spu_avenrun[2], EXP_15, active_tasks);
|
||||
spu_avenrun[0] = calc_load(spu_avenrun[0], EXP_1, active_tasks);
|
||||
spu_avenrun[1] = calc_load(spu_avenrun[1], EXP_5, active_tasks);
|
||||
spu_avenrun[2] = calc_load(spu_avenrun[2], EXP_15, active_tasks);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
int a, b, c;
|
||||
|
新增問題並參考
封鎖使用者