diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2014-07-23 17:31:35 +1000 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-07-28 14:11:30 +1000 |
commit | 86450f20fb0047266c374d1bcc66ba747bd6b44f (patch) | |
tree | 5c555ac7ac5e86b7c366d41b3e417eeb27a62850 | |
parent | 1feaa87c2fd7d610d154a3b7b739870030d2a7aa (diff) | |
download | op-kernel-dev-86450f20fb0047266c374d1bcc66ba747bd6b44f.zip op-kernel-dev-86450f20fb0047266c374d1bcc66ba747bd6b44f.tar.gz |
selftests/powerpc: Count instructions under scheduler pressure
Have a task eat some cpu while we are counting instructions to create
some scheduler pressure. The idea being to try and unearth any bugs we
have in counting that only appear when context switching is happening.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r-- | tools/testing/selftests/powerpc/pmu/Makefile | 2 | ||||
-rw-r--r-- | tools/testing/selftests/powerpc/pmu/count_instructions.c | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/tools/testing/selftests/powerpc/pmu/Makefile b/tools/testing/selftests/powerpc/pmu/Makefile index ebc0e74..8595cfd 100644 --- a/tools/testing/selftests/powerpc/pmu/Makefile +++ b/tools/testing/selftests/powerpc/pmu/Makefile @@ -2,7 +2,7 @@ noarg: $(MAKE) -C ../ PROGS := count_instructions l3_bank_test -EXTRA_SOURCES := ../harness.c event.c +EXTRA_SOURCES := ../harness.c event.c lib.c SUB_TARGETS = ebb diff --git a/tools/testing/selftests/powerpc/pmu/count_instructions.c b/tools/testing/selftests/powerpc/pmu/count_instructions.c index 312b4f0..5e241e1 100644 --- a/tools/testing/selftests/powerpc/pmu/count_instructions.c +++ b/tools/testing/selftests/powerpc/pmu/count_instructions.c @@ -12,6 +12,7 @@ #include "event.h" #include "utils.h" +#include "lib.h" extern void thirty_two_instruction_loop(u64 loops); @@ -90,7 +91,7 @@ static u64 determine_overhead(struct event *events) return overhead; } -static int count_instructions(void) +static int test_body(void) { struct event events[2]; u64 overhead; @@ -129,6 +130,11 @@ static int count_instructions(void) return 0; } +static int count_instructions(void) +{ + return eat_cpu(test_body); +} + int main(void) { return test_harness(count_instructions, "count_instructions"); |