[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <18880.12797.758764.128252@cargo.ozlabs.ibm.com>
Date: Wed, 18 Mar 2009 10:27:57 +1100
From: Paul Mackerras <paulus@...ba.org>
To: Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Ingo Molnar <mingo@...e.hu>,
Thomas Gleixner <tglx@...utronix.de>
CC: linux-kernel@...r.kernel.org
Subject: Test program for counters in groups
Here's a little test program that checks whether software counters
(specifically, the task clock counter) work correctly when they're in
a group with hardware counters.
What it does is to create several groups, each with one hardware
counter, counting instructions, plus a task clock counter. It needs
to know an upper bound N on the number of hardware counters you have
(N defaults to 8), and it creates N+4 groups to force them to be
multiplexed. It also creates an overall task clock counter.
Then it spins for a while, and then stops all the counters and reads
them. It takes the total of the task clock counters in the groups and
computes the ratio of that total to the overall execution time from
the overall task clock counter.
That ratio should be equal to the number of actual hardware counters
that can count instructions. If the task clock counters in the groups
don't stop when their group gets taken off the PMU, the ratio will
instead be close to N+4. The program will declare that the test fails
if the ratio is greater than N (actually, N + 0.0001 to allow for FP
rounding errors).
Could someone run this on x86 on the latest PCL tree and let me know
what happens? I don't have an x86 crash box easily to hand. On
powerpc, it passes, but I think that is because I am missing setting
counter->prev_count in arch/powerpc/kernel/perf_counter.c, and I think
that means that enabling/disabling a group with a task clock counter
in it won't work correctly (I'll do a test program for that next).
Usage is: swsched-test [-c num-hw-counters] [-v]
Use -c N if you have more than 8 hardware counters. The -v flag makes
it print out the values of each counter.
Paul.
View attachment "swsched-test.c" of type "text/x-csrc" (3120 bytes)
Powered by blists - more mailing lists