selftests/powerpc: Count instructions under scheduler pressure
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 23 Jul 2014 07:31:35 +0000 (17:31 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 28 Jul 2014 04:11:30 +0000 (14:11 +1000)
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>
tools/testing/selftests/powerpc/pmu/Makefile
tools/testing/selftests/powerpc/pmu/count_instructions.c

index ebc0e7449cd9dc669a2ed584a0576999d93f43fa..8595cfd7e41bab26fc579a393803196febd13ea3 100644 (file)
@@ -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
 
index 312b4f0fd27c2e5f773443330e7d0e12dbe57225..5e241e14f2040109c510275e80ccb7c36c898f9a 100644 (file)
@@ -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");