Linux KVM/arm64 development list
 help / color / mirror / Atom feed
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

  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