mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 16:41:39 +00:00
perf kvm: Move up metrics helpers
This patch moves up the helper functions of event's metrics for later adding code to call them. No any functionality changes, but has a function renaming from compare_kvm_event_{metric}() to cmp_event_{metric}(). Committer notes: Those helper functions are only used if this is true: if defined(HAVE_KVM_STAT_SUPPORT) && defined(HAVE_LIBTRACEEVENT) So keep them enclosed with that. Reviewed-by: James Clark <james.clark@arm.com> 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: 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>
This commit is contained in:
parent
a7d451a873
commit
f098376d16
@ -49,6 +49,44 @@
|
||||
#include <math.h>
|
||||
#include <perf/mmap.h>
|
||||
|
||||
#if defined(HAVE_KVM_STAT_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
|
||||
#define GET_EVENT_KEY(func, field) \
|
||||
static u64 get_event_ ##func(struct kvm_event *event, int vcpu) \
|
||||
{ \
|
||||
if (vcpu == -1) \
|
||||
return event->total.field; \
|
||||
\
|
||||
if (vcpu >= event->max_vcpu) \
|
||||
return 0; \
|
||||
\
|
||||
return event->vcpu[vcpu].field; \
|
||||
}
|
||||
|
||||
#define COMPARE_EVENT_KEY(func, field) \
|
||||
GET_EVENT_KEY(func, field) \
|
||||
static int cmp_event_ ## func(struct kvm_event *one, \
|
||||
struct kvm_event *two, int vcpu) \
|
||||
{ \
|
||||
return get_event_ ##func(one, vcpu) > \
|
||||
get_event_ ##func(two, vcpu); \
|
||||
}
|
||||
|
||||
GET_EVENT_KEY(time, time);
|
||||
GET_EVENT_KEY(max, stats.max);
|
||||
GET_EVENT_KEY(min, stats.min);
|
||||
COMPARE_EVENT_KEY(count, stats.n);
|
||||
COMPARE_EVENT_KEY(mean, stats.mean);
|
||||
|
||||
#define DEF_SORT_NAME_KEY(name, compare_key) \
|
||||
{ #name, cmp_event_ ## compare_key }
|
||||
|
||||
static struct kvm_event_key keys[] = {
|
||||
DEF_SORT_NAME_KEY(sample, count),
|
||||
DEF_SORT_NAME_KEY(time, mean),
|
||||
{ NULL, NULL }
|
||||
};
|
||||
#endif // defined(HAVE_KVM_STAT_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
|
||||
|
||||
static const char *get_filename_for_perf_kvm(void)
|
||||
{
|
||||
const char *filename;
|
||||
@ -461,42 +499,6 @@ static bool handle_kvm_event(struct perf_kvm_stat *kvm,
|
||||
return true;
|
||||
}
|
||||
|
||||
#define GET_EVENT_KEY(func, field) \
|
||||
static u64 get_event_ ##func(struct kvm_event *event, int vcpu) \
|
||||
{ \
|
||||
if (vcpu == -1) \
|
||||
return event->total.field; \
|
||||
\
|
||||
if (vcpu >= event->max_vcpu) \
|
||||
return 0; \
|
||||
\
|
||||
return event->vcpu[vcpu].field; \
|
||||
}
|
||||
|
||||
#define COMPARE_EVENT_KEY(func, field) \
|
||||
GET_EVENT_KEY(func, field) \
|
||||
static int compare_kvm_event_ ## func(struct kvm_event *one, \
|
||||
struct kvm_event *two, int vcpu)\
|
||||
{ \
|
||||
return get_event_ ##func(one, vcpu) > \
|
||||
get_event_ ##func(two, vcpu); \
|
||||
}
|
||||
|
||||
GET_EVENT_KEY(time, time);
|
||||
COMPARE_EVENT_KEY(count, stats.n);
|
||||
COMPARE_EVENT_KEY(mean, stats.mean);
|
||||
GET_EVENT_KEY(max, stats.max);
|
||||
GET_EVENT_KEY(min, stats.min);
|
||||
|
||||
#define DEF_SORT_NAME_KEY(name, compare_key) \
|
||||
{ #name, compare_kvm_event_ ## compare_key }
|
||||
|
||||
static struct kvm_event_key keys[] = {
|
||||
DEF_SORT_NAME_KEY(sample, count),
|
||||
DEF_SORT_NAME_KEY(time, mean),
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
static bool select_key(struct perf_kvm_stat *kvm)
|
||||
{
|
||||
int i;
|
||||
|
Loading…
Reference in New Issue
Block a user