Skip to content

Commit

Permalink
KVM: x86/vPMU: reset pmc->counter to 0 for pmu fixed_counters
Browse files Browse the repository at this point in the history
To avoid semantic inconsistency, the fixed_counters in Intel vPMU
need to be reset to 0 in intel_pmu_reset() as gp_counters does.

Signed-off-by: Like Xu <like.xu@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
Like Xu authored and Paolo Bonzini committed Jul 17, 2019
1 parent 6694e48 commit 4d1a082
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions arch/x86/kvm/vmx/pmu_intel.c
Original file line number Diff line number Diff line change
Expand Up @@ -337,17 +337,22 @@ static void intel_pmu_init(struct kvm_vcpu *vcpu)
static void intel_pmu_reset(struct kvm_vcpu *vcpu)
{
struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
struct kvm_pmc *pmc = NULL;
int i;

for (i = 0; i < INTEL_PMC_MAX_GENERIC; i++) {
struct kvm_pmc *pmc = &pmu->gp_counters[i];
pmc = &pmu->gp_counters[i];

pmc_stop_counter(pmc);
pmc->counter = pmc->eventsel = 0;
}

for (i = 0; i < INTEL_PMC_MAX_FIXED; i++)
pmc_stop_counter(&pmu->fixed_counters[i]);
for (i = 0; i < INTEL_PMC_MAX_FIXED; i++) {
pmc = &pmu->fixed_counters[i];

pmc_stop_counter(pmc);
pmc->counter = 0;
}

pmu->fixed_ctr_ctrl = pmu->global_ctrl = pmu->global_status =
pmu->global_ovf_ctrl = 0;
Expand Down

0 comments on commit 4d1a082

Please sign in to comment.