From: Zhao Liu <zhao1.liu@intel.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Eric Blake" <eblake@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
"Shaoqin Huang" <shahuang@redhat.com>,
"Eric Auger" <eauger@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Laurent Vivier" <lvivier@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Sebastian Ott" <sebott@redhat.com>,
"Gavin Shan" <gshan@redhat.com>,
qemu-devel@nongnu.org, kvm@vger.kernel.org, qemu-arm@nongnu.org,
"Dapeng Mi" <dapeng1.mi@intel.com>, "Yi Lai" <yi1.lai@intel.com>
Subject: Re: [RFC v2 3/5] i386/kvm: Support event with select & umask format in KVM PMU filter
Date: Thu, 6 Feb 2025 22:22:39 +0800 [thread overview]
Message-ID: <Z6TFr49Cnhe1s4/5@intel.com> (raw)
In-Reply-To: <878qqjqskm.fsf@pond.sub.org>
> >> > > The select&umask is the common way for x86 to identify the PMU event,
> >> > > so support this way as the "x86-default" format in kvm-pmu-filter
> >> > > object.
> >> >
> >> > So, format 'raw' lets you specify the PMU event code as a number, wheras
> >> > 'x86-default' lets you specify it as select and umask, correct?
> >>
> >> Yes!
> >>
> >> > Why do we want both?
> >>
> >> This 2 formats are both wildly used in x86(for example, in perf tool).
> >>
> >> x86 documents usually specify the umask and select fields.
> >>
> >> But raw format could also be applied for ARM since ARM just uses a number
> >> to encode event.
>
> Is it really too much to ask of the client to compute a raw value from
> umask and select values?
I understand you're wondering if we can omit the select+umask format...
In principle, having either one should work correctly... The additional
support for the umask+select format is more user-friendly and doesn't
introduce much complexity in the code.
My own observation is that Intel's doc rarely uses the raw format
directly, whereas AMD uses the raw format relatively more often.
Personally, when using the perf tool, I prefer the umask+select format.
Even if only the raw format is supported, users still need to be aware
of the umask+select format because there is the third format - "masked
entry" (which tries to mask a group of events with same select, patch 4).
So I would like to keep both raw and umask+select formats if possible.
...
> >> > > +#
> >> > > +# x86 PMU event encoding with select and umask.
> >> > > +# raw_event = ((select & 0xf00UL) << 24) | \
> >> > > +# (select) & 0xff) | \
> >> > > +# ((umask) & 0xff) << 8)
> >> >
> >> > Sphinx rejects this with "Unexpected indentation."
> >> >
> >> > Is the formula needed here?
> >>
> >> I tried to explain the relationship between raw format and umask+select.
> >>
> >> Emm, where do you think is the right place to put the document like
> >> this?
>
> Do users need to know how to compute the raw event value from @select
> and @umask?
Yes, because it's also a unified calculation. AMD and Intel have
differences in bits for supported select field, but this calculation
(which follows from the KVM code) makes both compatible.
> If yes, is C code the best way?
>
> Here's another way:
>
> bits 0..7 : bits 0..7 of @select
> bits 8..15: @umask
> bits 24..27: bits 8..11 of @select
> all other bits: zero
>
Thank you! This is what I want.
next prev parent reply other threads:[~2025-02-06 14:03 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-22 9:05 [RFC v2 0/5] accel/kvm: Support KVM PMU filter Zhao Liu
2025-01-22 9:05 ` [RFC v2 1/5] qapi/qom: Introduce kvm-pmu-filter object Zhao Liu
2025-02-05 10:03 ` Markus Armbruster
2025-02-06 10:19 ` Zhao Liu
2025-02-06 10:27 ` Zhao Liu
2025-02-06 12:13 ` Markus Armbruster
2025-02-06 14:32 ` Zhao Liu
2025-02-07 13:02 ` Markus Armbruster
2025-04-01 7:47 ` Zhao Liu
2025-04-08 5:51 ` Markus Armbruster
2025-01-22 9:05 ` [RFC v2 2/5] i386/kvm: Support basic KVM PMU filter Zhao Liu
2025-01-22 9:05 ` [RFC v2 3/5] i386/kvm: Support event with select & umask format in " Zhao Liu
2025-02-05 10:07 ` Markus Armbruster
2025-02-06 9:54 ` Zhao Liu
2025-02-06 9:42 ` Daniel P. Berrangé
2025-02-06 10:23 ` Zhao Liu
2025-02-06 10:24 ` Markus Armbruster
2025-02-06 14:22 ` Zhao Liu [this message]
2025-02-06 14:54 ` Zhao Liu
2025-02-07 13:06 ` Markus Armbruster
2025-04-01 7:53 ` Zhao Liu
2025-01-22 9:05 ` [RFC v2 4/5] i386/kvm: Support event with masked entry " Zhao Liu
2025-01-22 9:05 ` [RFC v2 5/5] i386/kvm: Support fixed counter " Zhao Liu
2025-01-24 8:00 ` [RFC v2 0/5] accel/kvm: Support " Lai, Yi
2025-03-18 7:35 ` Shaoqin Huang
2025-03-21 3:43 ` Zhao Liu
2025-03-31 6:32 ` Shaoqin Huang
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=Z6TFr49Cnhe1s4/5@intel.com \
--to=zhao1.liu@intel.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dapeng1.mi@intel.com \
--cc=eauger@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=gshan@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=lvivier@redhat.com \
--cc=michael.roth@amd.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=sebott@redhat.com \
--cc=shahuang@redhat.com \
--cc=thuth@redhat.com \
--cc=yi1.lai@intel.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