Messages in this thread | | | Date | Thu, 29 Oct 2009 17:13:45 -0700 | From | Corey Ashford <> | Subject | Re: perf_events: zero time running and enabled, but non-zero count |
| |
Anyone had a chance to look at this test case yet?
Regards,
- Corey
Corey Ashford wrote: > On 10/23/2009 01:57 PM, Ingo Molnar wrote: >> >> * Corey Ashford<cjashfor@linux.vnet.ibm.com> wrote: >> >>>> Btw., you might want to consider putting such testcases into a new >>>> 'perf test' kind of utility (under tools/perf/builtin-test.c) that >>>> does various tests such as reading a count and validating the >>>> time-running/time-enabled values - so that we can see any bugs >>>> directly. >>> >>> I'll see if I can put the test case in some sort of acceptable format >>> like that. Maybe we can use this one test case as the starting point >>> for builtin-test.c. >> >> Yeah. Feel free to add just something minimal that solves your problem. >> Others will add their testcases too i'm sure, once the basic command is >> there. >> >> Ingo > > Hi Ingo and Paul, > > I followed the directions Ingo provided for getting the -tip tree and > then attempted to build the perf tool that's in it and it doesn't build. > I'm getting this error on a Power5 box: > > ../../lib/find_next_bit.c: In function ‘ext2_swabp’: > ../../lib/find_next_bit.c:168: warning: passing argument 1 of > ‘__swab64p’ from incompatible pointer type > make: *** [util/find_next_bit.o] Error 1 > > I looked at the code and it looks ok to me. There's a cast from an > "unsigned long *" to a "unsigned long long *", but those types should be > of the same size (in -m64 mode), so I don't know why this is failing. > > Some good news is that I have created a simple test case which > demonstrates the bug, but I haven't formulated it in the builtin-test.c > format yet, since I have been able to build perf. > > If you toss the attached file into the perf source directory and compile > it as follows: > > gcc -m64 -o petb perf_events_time_bug.c -lrt > > it will show the error: > % ./petb > [0] = 1 > [1] = 0 <- time enabled > [2] = 0 <- time running > [3] = 4559d1f8 > [4] = 1 > test failed! > > perf_events_time_bug.c -lrt > > If you compile it with: > > gcc -DDO_DISABLE -m66 -o petb perf_events_time_bug.c -lrt > > This will disable the event before reading it and then you will get the > correct times. > > % ./petb > [0] = 1 > [1] = 2a50c1c8 <- time enabled > [2] = 2a50c1c8 <- time running > [3] = 460dea97 > [4] = 2 > test passed! >
-- Regards,
- Corey
Corey Ashford Software Engineer IBM Linux Technology Center, Linux Toolchain Beaverton, OR 503-578-3507 cjashfor@us.ibm.com
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |