Jen-Cheng(Tommy) Huang <tommy24 <at> gatech.edu> writes: > > Hi > > I am trying to use perf with event grouping to profile Java apps. > My kernel is 3.16.1-1.el6.elrepo.x86_64 > perf version 3.16.1-1.el6.elrepo.x86_64 > The Java app I use is hadoop TaskTracker, which spawns multiple child JVMs. > There seems to be something wrong with event group, since very few > samples were collected if I use more than one event in a group. > The following shows an example > > I used > perf record -e '{instructions}:S' -c 100000 [TaskTracker command] > This one works fine and it collects a reasonable amount of samples and > several threads are sampled. > > However, the following command does not work. > perf record -e '{instructions,cycles}:S' -c 100000 [TaskTracker command] > Less than 1000 samples were collected and only one thread was sampled > > If I don't use :S to read samples, the sample counts are reasonable, > but the event grouping is gone. (both events were sampled, no leader > event.) > perf record -e '{instructions,cycles}' -c 100000 [TaskTracker command] > > I tested single-threaded app, such as SPEC CPU. > Everything works fine. The event grouping works fine, so as the :S flag. > However, the Java app that I tested does not. > Please let me know if any suggestions on this issue. > > Thanks. > To make it clear about the sample count difference, this is the stats collected from a few seconds run of the same app: With only one event in a group, it has ~362339 samples while 2 events in a group, it has only 938 samples (only 1 thread was profiled). I think the sample recording is somehow stopped. Thanks.
-- To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html