diff mbox

[PULL,2/2] perf-kvm: fix of 'Min time' counting in report command

Message ID 1397053319-2130-3-git-send-email-borntraeger@de.ibm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Christian Borntraeger April 9, 2014, 2:21 p.m. UTC
From: Alexander Yarygin <yarygin@linux.vnet.ibm.com>

Every event in the perf-kvm has a 'stats' structure, which contains
max/min/average/etc times of handling this event.
The problem is that the 'perf-kvm stat report' command always shows
that 'min time' is 0us for every event. Example:

 # perf kvm stat report
Analyze events for all VCPUs:

    VM-EXIT    Samples  Samples%     Time%   Min Time   Max Time
    Avg time
[..]
0xB2 MSCH         12     0.07%     0.00%        0us        8us
    7.31us ( +-   2.11% )
0xB2 CHSC         12     0.07%     0.00%        0us       18us
    9.39us ( +-   9.49% )
0xB2 STPX          8     0.05%     0.00%        0us        2us
    1.88us ( +-   7.18% )
0xB2 STSI          7     0.04%     0.00%        0us       44us
    16.49us ( +-  38.20% )
[..]

This happens because 'stats' structure is not initialized and
stats->min equals to 0. Lets initialize the structure for every
event after it's allocation using init_stats() function. This initialize
stats->min to -1 and makes 'Min time' statistics counting work:

 # perf kvm stat report

Analyze events for all VCPUs:

    VM-EXIT    Samples  Samples%     Time%   Min Time   Max Time
    Avg time
[..]
0xB2 MSCH         12     0.07%     0.00%        6us        8us
    7.31us ( +-   2.11% )
0xB2 CHSC         12     0.07%     0.00%        7us       18us
    9.39us ( +-   9.49% )
0xB2 STPX          8     0.05%     0.00%        1us        2us
    1.88us ( +-   7.18% )
0xB2 STSI          7     0.04%     0.00%        1us       44us
    16.49us ( +-  38.20% )
[..]

Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
 tools/perf/builtin-kvm.c |    1 +
 1 file changed, 1 insertion(+)

Comments

David Ahern April 9, 2014, 3:10 p.m. UTC | #1
On 4/9/14, 7:21 AM, Christian Borntraeger wrote:
> From: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
>
> Every event in the perf-kvm has a 'stats' structure, which contains
> max/min/average/etc times of handling this event.
> The problem is that the 'perf-kvm stat report' command always shows
> that 'min time' is 0us for every event. Example:
>
>   # perf kvm stat report
> Analyze events for all VCPUs:
>
>      VM-EXIT    Samples  Samples%     Time%   Min Time   Max Time
>      Avg time
> [..]
> 0xB2 MSCH         12     0.07%     0.00%        0us        8us
>      7.31us ( +-   2.11% )
> 0xB2 CHSC         12     0.07%     0.00%        0us       18us
>      9.39us ( +-   9.49% )
> 0xB2 STPX          8     0.05%     0.00%        0us        2us
>      1.88us ( +-   7.18% )
> 0xB2 STSI          7     0.04%     0.00%        0us       44us
>      16.49us ( +-  38.20% )
> [..]
>
> This happens because 'stats' structure is not initialized and
> stats->min equals to 0. Lets initialize the structure for every
> event after it's allocation using init_stats() function. This initialize
> stats->min to -1 and makes 'Min time' statistics counting work:
>
>   # perf kvm stat report
>
> Analyze events for all VCPUs:
>
>      VM-EXIT    Samples  Samples%     Time%   Min Time   Max Time
>      Avg time
> [..]
> 0xB2 MSCH         12     0.07%     0.00%        6us        8us
>      7.31us ( +-   2.11% )
> 0xB2 CHSC         12     0.07%     0.00%        7us       18us
>      9.39us ( +-   9.49% )
> 0xB2 STPX          8     0.05%     0.00%        1us        2us
>      1.88us ( +-   7.18% )
> 0xB2 STSI          7     0.04%     0.00%        1us       44us
>      16.49us ( +-  38.20% )
> [..]
>
> Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>   tools/perf/builtin-kvm.c |    1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
> index 21c164b..0f1e5a2 100644
> --- a/tools/perf/builtin-kvm.c
> +++ b/tools/perf/builtin-kvm.c
> @@ -404,6 +404,7 @@ static struct kvm_event *kvm_alloc_init_event(struct event_key *key)
>   	}
>
>   	event->key = *key;
> +	init_stats(&event->total.stats);
>   	return event;
>   }

Reviewed-by: David Ahern <dsahern@gmail.com>


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
index 21c164b..0f1e5a2 100644
--- a/tools/perf/builtin-kvm.c
+++ b/tools/perf/builtin-kvm.c
@@ -404,6 +404,7 @@  static struct kvm_event *kvm_alloc_init_event(struct event_key *key)
 	}
 
 	event->key = *key;
+	init_stats(&event->total.stats);
 	return event;
 }