On Fri, Mar 10, 2023, Like Xu wrote: > From: Like Xu <likexu@xxxxxxxxxxx> > > Considering that more emulations are deferred to kvm_pmu_handle_event(), > moving it to the end of pmu.c makes it easier to call previous functions, > instead of just piling up the function declarations to make compiler green. kvm_pmu_handle_event() is globally visible, moving it around changes nothing. As for using it in kvm_mark_pmc_is_quirky(), explicitly state the direct motivation for moving kvm_pmu_request_counter_reprogram(), i.e. that it's being hoisted above pmc_read_counter() for use in a future patch. Using abstract language might sound pretty and dramatic, but it's really not helpful for reviewers. > diff --git a/arch/x86/kvm/pmu.h b/arch/x86/kvm/pmu.h > index db4262fe8814..a47b579667c6 100644 > --- a/arch/x86/kvm/pmu.h > +++ b/arch/x86/kvm/pmu.h > @@ -48,6 +48,12 @@ static inline u64 pmc_bitmask(struct kvm_pmc *pmc) > return pmu->counter_bitmask[pmc->type]; > } > > +static inline void kvm_pmu_request_counter_reprogram(struct kvm_pmc *pmc) > +{ > + set_bit(pmc->idx, pmc_to_pmu(pmc)->reprogram_pmi); > + kvm_make_request(KVM_REQ_PMU, pmc->vcpu); > +} > + > static inline u64 pmc_read_counter(struct kvm_pmc *pmc) > { > u64 counter, enabled, running; > @@ -183,12 +189,6 @@ static inline void kvm_init_pmu_capability(const struct kvm_pmu_ops *pmu_ops) > KVM_PMC_MAX_FIXED); > } > > -static inline void kvm_pmu_request_counter_reprogram(struct kvm_pmc *pmc) > -{ > - set_bit(pmc->idx, pmc_to_pmu(pmc)->reprogram_pmi); > - 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); > -- > 2.39.2 >