From: Oliver Upton <oliver.upton@linux.dev>
To: Marc Zyngier <maz@kernel.org>
Cc: kvmarm@lists.linux.dev, James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Zenghui Yu <yuzenghui@huawei.com>,
Ganapatrao Kulkarni <gankulkarni@os.amperecomputing.com>
Subject: Re: [PATCH 0/3] KVM: arm64: nv: Add EL2 PMU event filtering support
Date: Tue, 27 Aug 2024 00:01:11 -0700 [thread overview]
Message-ID: <Zs15t5JVqcG6AYjF@linux.dev> (raw)
In-Reply-To: <86r0aawk0s.wl-maz@kernel.org>
On Tue, Aug 27, 2024 at 07:35:15AM +0100, Marc Zyngier wrote:
> > Thoughts?
>
> I see that you have already posted your proposed approach, but allow
> me to say what I have in mind.
>
> We have three possibilities:
>
> - either we go with your approach, which has the advantage of not
> requiring any new trap description, but breaks the (unwritten)
> promise that we don't do any "local" handling at this stage
>
> - or we perform the handling where we normally do it (in sys_regs.c),
> but we start littering the already overly complicated emulation code
> for something that is barely a trap reinjection
Hell no :)
> - or (and this is my preferred option), we treat it as a "fast" trap,
> which would match what we do for other things that we trap and that
> behave differently when 'InHost' (ERET, TLBIs).
>
> This last option does require another bit of decoding, but has the
> following advantages:
>
> - it follows the existing model for 'InHost' trap handling
>
> - it is close to optimal from a performance perspective
>
> - it doesn't change the existing behaviour of the xarray handling
>
> The way I think of it, this sort of EL0->EL2 trap reinjection is
> simply the other side of the ERET coin, and I would very much like to
> keep this symmetry, unless I have missed something obvious.
>
> What do you think?
My primary concern about stuffing more things into the fast path is the
limited debuggability since we can't use instrumentation in a
not-quite-kernel context.
I do generally agree with the intent of organizing it all similarly,
just that the traps infrastructure is _really_ handy for doing the job.
Let me take an accounting of how many other 'InHost' trap bits we have
and get a feel for if we need a generalized solution or if I can do
something PMU-specific here.
--
Thanks,
Oliver
next prev parent reply other threads:[~2024-08-27 7:01 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-24 0:13 [PATCH 0/3] KVM: arm64: nv: Add EL2 PMU event filtering support Oliver Upton
2024-08-24 0:14 ` [PATCH 1/3] KVM: arm64: Add helpers to determine if PMC counts at a given EL Oliver Upton
2024-08-24 0:14 ` [PATCH 2/3] KVM: arm64: nv: Honor NSH filter when in hyp context Oliver Upton
2024-08-24 0:14 ` [PATCH 3/3] KVM: arm64: nv: Reprogram PMU events affected by nested transition Oliver Upton
2024-08-25 8:16 ` [PATCH 0/3] KVM: arm64: nv: Add EL2 PMU event filtering support Marc Zyngier
2024-08-26 17:26 ` Oliver Upton
2024-08-27 6:35 ` Marc Zyngier
2024-08-27 7:01 ` Oliver Upton [this message]
2024-08-27 7:59 ` Marc Zyngier
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=Zs15t5JVqcG6AYjF@linux.dev \
--to=oliver.upton@linux.dev \
--cc=gankulkarni@os.amperecomputing.com \
--cc=james.morse@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox