From: Markus Armbruster <armbru@redhat.com>
To: Zhao Liu <zhao1.liu@intel.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Eric Blake" <eblake@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Daniel P . Berrangé" <berrange@redhat.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: Wed, 05 Feb 2025 11:07:10 +0100 [thread overview]
Message-ID: <87zfj01z8x.fsf@pond.sub.org> (raw)
In-Reply-To: <20250122090517.294083-4-zhao1.liu@intel.com> (Zhao Liu's message of "Wed, 22 Jan 2025 17:05:15 +0800")
Zhao Liu <zhao1.liu@intel.com> writes:
> 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?
Why do we want both?
> Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
[...]
> diff --git a/qapi/kvm.json b/qapi/kvm.json
> index d51aeeba7cd8..93b869e3f90c 100644
> --- a/qapi/kvm.json
> +++ b/qapi/kvm.json
> @@ -27,11 +27,13 @@
> #
> # @raw: the encoded event code that KVM can directly consume.
> #
> +# @x86-default: standard x86 encoding format with select and umask.
Why is this named -default?
> +#
> # Since 10.0
> ##
> { 'enum': 'KVMPMUEventEncodeFmt',
> 'prefix': 'KVM_PMU_EVENT_FMT',
> - 'data': ['raw'] }
> + 'data': ['raw', 'x86-default'] }
>
> ##
> # @KVMPMURawEvent:
> @@ -46,6 +48,25 @@
> { 'struct': 'KVMPMURawEvent',
> 'data': { 'code': 'uint64' } }
>
> +##
> +# @KVMPMUX86DefalutEvent:
Default, I suppose.
> +#
> +# 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?
> +#
> +# @select: x86 PMU event select field, which is a 12-bit unsigned
> +# number.
> +#
> +# @umask: x86 PMU event umask field.
> +#
> +# Since 10.0
> +##
> +{ 'struct': 'KVMPMUX86DefalutEvent',
> + 'data': { 'select': 'uint16',
> + 'umask': 'uint8' } }
> +
> ##
> # @KVMPMUFilterEvent:
> #
> @@ -58,7 +79,8 @@
> { 'union': 'KVMPMUFilterEvent',
> 'base': { 'format': 'KVMPMUEventEncodeFmt' },
> 'discriminator': 'format',
> - 'data': { 'raw': 'KVMPMURawEvent' } }
> + 'data': { 'raw': 'KVMPMURawEvent',
> + 'x86-default': 'KVMPMUX86DefalutEvent' } }
>
> ##
> # @KVMPMUFilterProperty:
> @@ -86,6 +108,23 @@
> { 'struct': 'KVMPMURawEventVariant',
> 'data': { 'code': 'str' } }
>
> +##
> +# @KVMPMUX86DefalutEventVariant:
> +#
> +# The variant of KVMPMUX86DefalutEvent with the string, rather than
> +# the numeric value.
> +#
> +# @select: x86 PMU event select field. This field is a 12-bit
> +# unsigned number string.
> +#
> +# @umask: x86 PMU event umask field. This field is a uint8 string.
Why are these strings? How are they parsed into numbers?
> +#
> +# Since 10.0
> +##
> +{ 'struct': 'KVMPMUX86DefalutEventVariant',
> + 'data': { 'select': 'str',
> + 'umask': 'str' } }
> +
> ##
> # @KVMPMUFilterEventVariant:
> #
> @@ -98,7 +137,8 @@
> { 'union': 'KVMPMUFilterEventVariant',
> 'base': { 'format': 'KVMPMUEventEncodeFmt' },
> 'discriminator': 'format',
> - 'data': { 'raw': 'KVMPMURawEventVariant' } }
> + 'data': { 'raw': 'KVMPMURawEventVariant',
> + 'x86-default': 'KVMPMUX86DefalutEventVariant' } }
>
> ##
> # @KVMPMUFilterPropertyVariant:
[...]
next prev parent reply other threads:[~2025-02-05 10:07 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 [this message]
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
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=87zfj01z8x.fsf@pond.sub.org \
--to=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 \
--cc=zhao1.liu@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 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.