summaryrefslogtreecommitdiff
path: root/tools/perf/builtin-kvm.c
diff options
context:
space:
mode:
authorLeo Yan <leo.yan@linaro.org>2023-03-15 17:51:00 +0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2023-03-15 22:43:18 +0300
commitdd787ae4e8548a82350981b4b0046df6a92999f2 (patch)
tree902176cfdbf2b8f758711ad446aeddb012594e25 /tools/perf/builtin-kvm.c
parentf098376d16e94a0a14bd16264f28c72ee3b411c9 (diff)
downloadlinux-dd787ae4e8548a82350981b4b0046df6a92999f2.tar.xz
perf kvm: Use subtraction for comparison metrics
Currently the metrics comparison uses greater operator (>), it returns the boolean value (0 or 1). This patch changes to use subtraction as comparison result, which can be used by histograms sorting. Since the subtraction result is u64 type, we change key_cmp_fun's return type to int64_t to avoid overflow. Signed-off-by: Leo Yan <leo.yan@linaro.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@arm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.g.garry@oracle.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: linux-arm-kernel@lists.infradead.org Link: https://lore.kernel.org/r/20230315145112.186603-2-leo.yan@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-kvm.c')
-rw-r--r--tools/perf/builtin-kvm.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
index c11f5454f35c..fbdd46d38c13 100644
--- a/tools/perf/builtin-kvm.c
+++ b/tools/perf/builtin-kvm.c
@@ -64,10 +64,10 @@ static u64 get_event_ ##func(struct kvm_event *event, int vcpu) \
#define COMPARE_EVENT_KEY(func, field) \
GET_EVENT_KEY(func, field) \
-static int cmp_event_ ## func(struct kvm_event *one, \
+static int64_t cmp_event_ ## func(struct kvm_event *one, \
struct kvm_event *two, int vcpu) \
{ \
- return get_event_ ##func(one, vcpu) > \
+ return get_event_ ##func(one, vcpu) - \
get_event_ ##func(two, vcpu); \
}
@@ -525,7 +525,7 @@ static void insert_to_result(struct rb_root *result, struct kvm_event *event,
p = container_of(*rb, struct kvm_event, rb);
parent = *rb;
- if (bigger(event, p, vcpu))
+ if (bigger(event, p, vcpu) > 0)
rb = &(*rb)->rb_left;
else
rb = &(*rb)->rb_right;