perf kvm: Fix bug in 'stat report'
authorDongsheng Yang <yangds.fnst@cn.fujitsu.com>
Mon, 9 Dec 2013 23:47:03 +0000 (18:47 -0500)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 9 Dec 2013 18:20:12 +0000 (15:20 -0300)
When we use perf kvm record-report, there is a bug in report subcommand.

Example:
# perf kvm stat record -a sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.678 MB perf.data.guest (~29641 samples) ]
# perf kvm stat report
failed to open perf.data: No such file or directory  (try 'perf record' first)
Initializing perf session failed

This bug was introduced by f5fc14124.

+       struct perf_data_file file = {
+               .path = input_name,
+               .mode = PERF_DATA_MODE_READ,
+       };

        kvm->tool = eops;
-       kvm->session = perf_session__new(kvm->file_name, O_RDONLY, 0, false,
-                                        &kvm->tool);
+       kvm->session = perf_session__new(&file, false, &kvm->tool);

It changed the path from kvm->file_name to input_name, this patch change the path back to
'kvm->file_name', then it works well.

Verification:
# perf kvm stat record -a sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.807 MB perf.data.guest (~35264 samples) ]
# perf kvm stat report

Analyze events for all VCPUs:

     VM-EXIT    Samples  Samples%     Time%   Min Time   Max Time         Avg time

       EPT_VIOLATION        200    32.79%     1.25%        0us    12064us     62.35us ( +-  96.74% )
       EPT_MISCONFIG        134    21.97%     0.21%        0us       35us     15.25us ( +-   4.14% )
       EXCEPTION_NMI         96    15.74%     0.02%        0us       11us      1.95us ( +-   9.81% )
 APIC_ACCESS         79    12.95%     0.02%        0us       13us      2.94us ( +-  11.20% )
 HLT         65    10.66%    98.47%        0us    16706us  15084.86us ( +-   1.89% )
      IO_INSTRUCTION         27     4.43%     0.02%        0us       29us      6.42us ( +-  15.53% )
  EXTERNAL_INTERRUPT          5     0.82%     0.01%        0us       77us     23.65us ( +-  57.90% )
 TPR_BELOW_THRESHOLD          4     0.66%     0.00%        0us        1us      1.22us ( +-   4.36% )

Total Samples:610, Total events handled time:995745.54us.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Link: http://lkml.kernel.org/r/1386632823-17539-1-git-send-email-yangds.fnst@cn.fujitsu.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-kvm.c

index d9cc0e3f284f071f3a1a6d88ef06a632415433e7..c2e5d56a291dcf3d8bdb140cfffbb42d6c5ab6f6 100644 (file)
@@ -1232,7 +1232,7 @@ static int read_events(struct perf_kvm_stat *kvm)
                .ordered_samples        = true,
        };
        struct perf_data_file file = {
-               .path = input_name,
+               .path = kvm->file_name,
                .mode = PERF_DATA_MODE_READ,
        };