From: Oliver Upton <oliver.upton@linux.dev>
To: Marc Zyngier <maz@kernel.org>
Cc: kvmarm@lists.linux.dev, Joey Gouly <joey.gouly@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Zenghui Yu <yuzenghui@huawei.com>,
Mingwei Zhang <mizhang@google.com>,
Colton Lewis <coltonlewis@google.com>,
Raghavendra Rao Ananta <rananta@google.com>
Subject: Re: [PATCH v2 2/2] KVM: arm64: Use MDCR_EL2.HPME to evaluate overflow of hyp counters
Date: Wed, 20 Nov 2024 08:54:45 +0000 [thread overview]
Message-ID: <Zz2j1SEnH8OSrl5t@linux.dev> (raw)
In-Reply-To: <86ttc2uwox.wl-maz@kernel.org>
On Wed, Nov 20, 2024 at 08:38:22AM +0000, Marc Zyngier wrote:
> On Wed, 20 Nov 2024 00:52:30 +0000, Oliver Upton <oliver.upton@linux.dev> wrote:
> > +/*
> > + * Returns the PMU overflow state, which is true if there exists an event
> > + * counter where the values of the global enable control, PMOVSSET_EL0[n], and
> > + * PMINTENSET_EL1[n] are all 1.
> > + */
> > +static bool kvm_pmu_overflow_status(struct kvm_vcpu *vcpu)
> > {
> > - u64 reg = 0;
> > + u64 reg = __vcpu_sys_reg(vcpu, PMOVSSET_EL0);
> >
> > - if ((kvm_vcpu_read_pmcr(vcpu) & ARMV8_PMU_PMCR_E)) {
> > - reg = __vcpu_sys_reg(vcpu, PMOVSSET_EL0);
> > - reg &= __vcpu_sys_reg(vcpu, PMINTENSET_EL1);
> > - }
> > + reg &= __vcpu_sys_reg(vcpu, PMINTENSET_EL1);
> > +
> > + /*
> > + * PMCR_EL0.E is the global enable control for event counters available
> > + * to EL0 and EL1.
> > + */
> > + if (!(kvm_vcpu_read_pmcr(vcpu) & ARMV8_PMU_PMCR_E))
> > + reg &= kvm_pmu_hyp_counter_mask(vcpu);
>
> So if the PMU is disabled at EL1, we remove the cycle counter from the
> list of counters that are considered for an overflow.
>
> I don't think that's what you really want.
That's how it is written though, no? My understanding is that the fixed
counters are never reserved by EL2:
"""
The PE signals a request for:
[...]
- The cycle counter, when the values of PMCR_EL0.E, PMOVSSET[31] and
PMINTENSET[31] are all 1
"""
PMUOverflowCondition() and PMUCounterIsHyp() seem to match this too.
Unless I can't read, which happens a lot.
--
Thanks,
Oliver
next prev parent reply other threads:[~2024-11-20 8:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-20 0:52 [PATCH v2 0/2] KVM: arm64: Fixes for PMU overflow state Oliver Upton
2024-11-20 0:52 ` [PATCH v2 1/2] KVM: arm64: Ignore PMCNTENSET_EL0 while checking for overflow status Oliver Upton
2024-11-20 8:18 ` Marc Zyngier
2024-11-20 0:52 ` [PATCH v2 2/2] KVM: arm64: Use MDCR_EL2.HPME to evaluate overflow of hyp counters Oliver Upton
2024-11-20 1:00 ` Oliver Upton
2024-11-20 8:38 ` Marc Zyngier
2024-11-20 8:54 ` Oliver Upton [this message]
2024-11-20 9:55 ` Marc Zyngier
2024-11-21 8:18 ` [PATCH v2 0/2] KVM: arm64: Fixes for PMU overflow state Oliver Upton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zz2j1SEnH8OSrl5t@linux.dev \
--to=oliver.upton@linux.dev \
--cc=coltonlewis@google.com \
--cc=joey.gouly@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=mizhang@google.com \
--cc=rananta@google.com \
--cc=suzuki.poulose@arm.com \
--cc=yuzenghui@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.