Re: Bench for testing scheduler

From: Catalin Marinas
Date: Thu Nov 07 2013 - 06:33:30 EST


Hi Vincent,

(for whatever reason, the text is wrapped and results hard to read)

On Thu, Nov 07, 2013 at 10:54:30AM +0000, Vincent Guittot wrote:
> During the Energy-aware scheduling mini-summit, we spoke about benches
> that should be used to evaluate the modifications of the scheduler.
> Iâd like to propose a bench that uses cyclictest to measure the wake
> up latency and the power consumption. The goal of this bench is to
> exercise the scheduler with various sleeping period and get the
> average wakeup latency. The range of the sleeping period must cover
> all residency times of the idle state table of the platform. I have
> run such tests on a tc2 platform with the packing tasks patchset.
> I have use the following command:
> #cyclictest -t <number of cores> -q -e 10000000 -i <500-12000> -d 150 -l 2000

cyclictest could be a good starting point but we need to improve it to
allow threads of different loads, possibly starting multiple processes
(can be done with a script), randomly varying load threads. These
parameters should be loaded from a file so that we can have multiple
configurations (per SoC and per use-case). But the big risk is that we
try to optimise the scheduler for something which is not realistic.

We are working on describing some basic scenarios (plain English for
now) and one of them could be video playing with threads for audio and
video decoding with random change in the workload.

So I think the first step should be a set of tools/scripts to analyse
the scheduler behaviour, both in terms of latency and power, and these
can use perf sched. We can then run some real life scenarios (e.g.
Android video playback) and build a benchmark that matches such
behaviour as close as possible. We can probably use (or improve) perf
sched replay to also simulate such workload (we may need additional
features like thread dependencies).

> The figures below give the average wakeup latency and power
> consumption for default scheduler behavior, packing tasks at cluster
> level and packing tasks at core level. We can see both wakeup latency
> and power consumption variation. The detailed result is not a simple
> single value which makes comparison not so easy but the average of all
> measurements should give us a usable âscoreâ.

How did you assess the power/energy?

Thanks.

--
Catalin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/