From: Like Xu <likexu@xxxxxxxxxxx> Add a helper to check if pmc has PEBS mode enabled so that more new code may reuse this part and opportunistically drop a pmu reference. No functional change intended. Signed-off-by: Like Xu <likexu@xxxxxxxxxxx> --- arch/x86/kvm/pmu.c | 3 +-- arch/x86/kvm/pmu.h | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c index d1c89a6625a0..01a6b7ffa9b1 100644 --- a/arch/x86/kvm/pmu.c +++ b/arch/x86/kvm/pmu.c @@ -191,7 +191,6 @@ static int pmc_reprogram_counter(struct kvm_pmc *pmc, u32 type, u64 config, bool exclude_user, bool exclude_kernel, bool intr) { - struct kvm_pmu *pmu = pmc_to_pmu(pmc); struct perf_event *event; struct perf_event_attr attr = { .type = type, @@ -203,7 +202,7 @@ static int pmc_reprogram_counter(struct kvm_pmc *pmc, u32 type, u64 config, .exclude_kernel = exclude_kernel, .config = config, }; - bool pebs = test_bit(pmc->idx, (unsigned long *)&pmu->pebs_enable); + bool pebs = pebs_is_enabled(pmc); attr.sample_period = get_sample_period(pmc, pmc->counter); diff --git a/arch/x86/kvm/pmu.h b/arch/x86/kvm/pmu.h index cff0651b030b..db4262fe8814 100644 --- a/arch/x86/kvm/pmu.h +++ b/arch/x86/kvm/pmu.h @@ -189,6 +189,13 @@ static inline void kvm_pmu_request_counter_reprogram(struct kvm_pmc *pmc) kvm_make_request(KVM_REQ_PMU, pmc->vcpu); } +static inline bool pebs_is_enabled(struct kvm_pmc *pmc) +{ + struct kvm_pmu *pmu = pmc_to_pmu(pmc); + + return test_bit(pmc->idx, (unsigned long *)&pmu->pebs_enable); +} + void kvm_pmu_deliver_pmi(struct kvm_vcpu *vcpu); void kvm_pmu_handle_event(struct kvm_vcpu *vcpu); int kvm_pmu_rdpmc(struct kvm_vcpu *vcpu, unsigned pmc, u64 *data); -- 2.39.2