On Fri, Mar 10, 2023, Like Xu wrote: > 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) pebs_is_enabled() is a bit too generic, e.g. at a glance I would expect it to return true if PEBS as a whole is enabled. What about something like pmc_is_pebs() or pmc_is_pebs_enabled()?