mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-15 15:04:27 +08:00
perf kvm: Add pointer to 'perf_kvm_stat' in kvm event
Sometimes, handling kvm events needs to base on global variables, e.g. when read event counts we need to know the target vcpu ID; the global variables are stored in structure perf_kvm_stat. This patch adds add a 'perf_kvm_stat' pointer in kvm event structure, it is to be used by later refactoring. 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
9c3aa1f411
commit
a7d451a873
@ -209,7 +209,8 @@ static bool kvm_event_expand(struct kvm_event *event, int vcpu_id)
|
||||
return true;
|
||||
}
|
||||
|
||||
static struct kvm_event *kvm_alloc_init_event(struct event_key *key)
|
||||
static struct kvm_event *kvm_alloc_init_event(struct perf_kvm_stat *kvm,
|
||||
struct event_key *key)
|
||||
{
|
||||
struct kvm_event *event;
|
||||
|
||||
@ -219,6 +220,7 @@ static struct kvm_event *kvm_alloc_init_event(struct event_key *key)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
event->perf_kvm = kvm;
|
||||
event->key = *key;
|
||||
init_stats(&event->total.stats);
|
||||
return event;
|
||||
@ -238,7 +240,7 @@ static struct kvm_event *find_create_kvm_event(struct perf_kvm_stat *kvm,
|
||||
return event;
|
||||
}
|
||||
|
||||
event = kvm_alloc_init_event(key);
|
||||
event = kvm_alloc_init_event(kvm, key);
|
||||
if (!event)
|
||||
return NULL;
|
||||
|
||||
|
@ -24,10 +24,13 @@ struct kvm_event_stats {
|
||||
struct stats stats;
|
||||
};
|
||||
|
||||
struct perf_kvm_stat;
|
||||
|
||||
struct kvm_event {
|
||||
struct list_head hash_entry;
|
||||
struct rb_node rb;
|
||||
|
||||
struct perf_kvm_stat *perf_kvm;
|
||||
struct event_key key;
|
||||
|
||||
struct kvm_event_stats total;
|
||||
@ -44,8 +47,6 @@ struct kvm_event_key {
|
||||
key_cmp_fun key;
|
||||
};
|
||||
|
||||
struct perf_kvm_stat;
|
||||
|
||||
struct child_event_ops {
|
||||
void (*get_key)(struct evsel *evsel,
|
||||
struct perf_sample *sample,
|
||||
|
Loading…
Reference in New Issue
Block a user