From: Markus Armbruster <armbru@redhat.com>
To: Andrew Jones <drjones@redhat.com>
Cc: peter.maydell@linaro.org, richard.henderson@linaro.org,
qemu-devel@nongnu.org, abologna@redhat.com,
qemu-arm@nongnu.org, alex.bennee@linaro.org,
Dave.Martin@arm.com
Subject: Re: [Qemu-devel] [PATCH 08/13] target/arm/monitor: Add query-sve-vector-lengths
Date: Tue, 14 May 2019 07:32:47 +0200 [thread overview]
Message-ID: <874l5xa9ds.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20190513183030.aap4gsxm7rbbkrbj@kamzik.brq.redhat.com> (Andrew Jones's message of "Mon, 13 May 2019 20:30:30 +0200")
Andrew Jones <drjones@redhat.com> writes:
> On Mon, May 13, 2019 at 06:12:38PM +0200, Markus Armbruster wrote:
>> Andrew Jones <drjones@redhat.com> writes:
>>
>> > Provide a QMP interface to query the supported SVE vector lengths.
>> > A migratable guest will need to explicitly specify a valid set of
>> > lengths on the command line and that set can be obtained from the
>> > list returned with this QMP command.
>> >
>> > This patch only introduces the QMP command with the TCG implementation.
>> > The result may not yet be correct for KVM. Following patches ensure
>> > the KVM result is correct.
>> >
>> > Signed-off-by: Andrew Jones <drjones@redhat.com>
>> > ---
>> > qapi/target.json | 34 ++++++++++++++++++++++++
>> > target/arm/monitor.c | 62 ++++++++++++++++++++++++++++++++++++++++++++
>> > tests/qmp-cmd-test.c | 1 +
>> > 3 files changed, 97 insertions(+)
>> >
>> > diff --git a/qapi/target.json b/qapi/target.json
>> > index 1d4d54b6002e..ca1e85254780 100644
>> > --- a/qapi/target.json
>> > +++ b/qapi/target.json
>> > @@ -397,6 +397,40 @@
>> > { 'command': 'query-gic-capabilities', 'returns': ['GICCapability'],
>> > 'if': 'defined(TARGET_ARM)' }
>> >
>> > +##
>> > +# @SVEVectorLengths:
>> > +#
>> > +# The struct contains a list of integers where each integer is a valid
>>
>> Suggest to s/The struct contains/Contains/.
>
> OK
>
>>
>> > +# SVE vector length for a KVM guest on this host. The vector lengths
>> > +# are in quadword (128-bit) units, e.g. '4' means 512 bits (64 bytes).
>>
>> Any particular reason for counting quad-words instead of bytes, or
>> perhaps bits?
>
> It can be considered just bits here, but when set in sve-vls-map those
> bits are chosen to mean quadwords as that allows us to get up to 8192-bit
> vectors with a single 64-bit word. Maybe I should write more of that here
> to clarify.
Please do.
In general, QMP prefers the plain units over arbitrary multiples,
e.g. Byte, not Mebibyte. Sadly, many violations of this rule have crept
in.
More complete documentation should help us determine the unit we want
here.
>> > +#
>> > +# @vls: list of vector lengths in quadwords.
>> > +#
>> > +# Since: 4.1
>> > +##
>> > +{ 'struct': 'SVEVectorLengths',
>> > + 'data': { 'vls': ['int'] },
>> > + 'if': 'defined(TARGET_ARM)' }
>> > +
>> > +##
>> > +# @query-sve-vector-lengths:
>> > +#
>> > +# This command is ARM-only. It will return a list of SVEVectorLengths
>>
>> No other target-specific command documents its target-specificness like
>> this. Suggest
>
> Well, it's pretty similar to query-gic-capabilities, which is what I used
> as a template, but I'm happy to change it to whatever you suggest :)
Here's the documentation we generate for query-gic-capabilities:
-- Command: query-gic-capabilities
This command is ARM-only. It will return a list of GICCapability
objects that describe its capability bits.
Returns: a list of GICCapability objects.
Since: 2.6
Example:
-> { "execute": "query-gic-capabilities" }
<- { "return": [{ "version": 2, "emulated": true, "kernel": false },
{ "version": 3, "emulated": false, "kernel": true } ] }
If: 'defined(TARGET_ARM)'
The "If:" line is generated from the schema's condition. It's not as
readable as I'd like it to be, but it's there, and it always matches the
code.
"This command is ARM-only" is redundant. Escaped review. A patch to
drop it would be welcome.
>> # Query valid SVE vector length sets.
>>
>> > +# objects. The list describes all valid SVE vector length sets.
>> > +#
>> > +# Returns: a list of SVEVectorLengths objects
>> > +#
>> > +# Since: 4.1
>> > +#
>> > +# -> { "execute": "query-sve-vector-lengths" }
>> > +# <- { "return": [ { "vls": [ 1 ] },
>> > +# { "vls": [ 1, 2 ] },
>> > +# { "vls": [ 1, 2, 4 ] } ] }
>> > +#
>> > +##
>> > +{ 'command': 'query-sve-vector-lengths', 'returns': ['SVEVectorLengths'],
>> > + 'if': 'defined(TARGET_ARM)' }
>> > +
>
> Yup, will do
Took me a few seconds to connect this to my "# Query valid SVE vector
length sets." line %-}
>> > ##
>> > # @CpuModelExpansionInfo:
>> > #
[...]
next prev parent reply other threads:[~2019-05-14 5:32 UTC|newest]
Thread overview: 131+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-12 8:36 [PATCH 00/13] target/arm/kvm: enable SVE in guests Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-12 8:36 ` [PATCH 01/13] target/arm/kvm64: fix error returns Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-06-05 7:20 ` Auger Eric
2019-05-12 8:36 ` [PATCH 02/13] update-linux-headers: Add sve_context.h to asm-arm64 Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-06-05 7:21 ` Auger Eric
2019-06-05 7:30 ` Andrew Jones
2019-06-05 7:30 ` Andrew Jones
2019-05-12 8:36 ` [PATCH 03/13] HACK: linux header update Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-12 8:36 ` [PATCH 04/13] target/arm/kvm: Move the get/put of fpsimd registers out Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-06-05 7:15 ` Auger Eric
2019-06-05 7:27 ` Andrew Jones
2019-06-05 7:27 ` Andrew Jones
2019-05-12 8:36 ` [PATCH 05/13] target/arm/kvm: Add kvm_arch_get/put_sve Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-13 12:31 ` Dave Martin
2019-05-13 12:31 ` [Qemu-devel] " Dave Martin
2019-05-13 13:55 ` Andrew Jones
2019-05-13 13:55 ` Andrew Jones
2019-05-13 15:31 ` Dave Martin
2019-05-13 15:31 ` Dave Martin
2019-05-13 15:40 ` Peter Maydell
2019-05-13 15:40 ` Peter Maydell
2019-05-13 16:05 ` Dave Martin
2019-05-13 16:05 ` Dave Martin
2019-05-13 16:40 ` Richard Henderson
2019-05-13 16:40 ` [Qemu-devel] " Richard Henderson
2019-05-13 18:14 ` Andrew Jones
2019-05-13 18:14 ` [Qemu-devel] " Andrew Jones
2019-05-13 18:31 ` Richard Henderson
2019-05-13 18:31 ` [Qemu-devel] " Richard Henderson
2019-05-13 12:43 ` Dave Martin
2019-05-13 12:43 ` [Qemu-devel] " Dave Martin
2019-05-13 14:07 ` Andrew Jones
2019-05-13 14:07 ` Andrew Jones
2019-05-13 14:39 ` Dave Martin
2019-05-13 14:39 ` Dave Martin
2019-05-13 16:58 ` Richard Henderson
2019-05-13 16:58 ` Richard Henderson
2019-05-14 9:10 ` Dave Martin
2019-05-14 9:10 ` Dave Martin
2019-05-12 8:36 ` [PATCH 06/13] target/arm/kvm: max cpu: Enable SVE when available Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-06-05 9:09 ` Auger Eric
2019-06-05 11:04 ` Andrew Jones
2019-06-05 11:04 ` Andrew Jones
2019-05-12 8:36 ` [PATCH 07/13] target/arm/kvm: max cpu: Allow sve max vector length setting Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-13 17:19 ` Richard Henderson
2019-05-13 17:19 ` [Qemu-devel] " Richard Henderson
2019-05-13 18:19 ` Andrew Jones
2019-05-13 18:19 ` Andrew Jones
2019-06-06 8:30 ` Auger Eric
2019-06-06 8:53 ` Andrew Jones
2019-06-06 8:53 ` Andrew Jones
2019-05-12 8:36 ` [PATCH 08/13] target/arm/monitor: Add query-sve-vector-lengths Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-13 16:12 ` Markus Armbruster
2019-05-13 16:12 ` Markus Armbruster
2019-05-13 18:30 ` Andrew Jones
2019-05-13 18:30 ` Andrew Jones
2019-05-14 5:32 ` Markus Armbruster [this message]
2019-05-12 8:36 ` [PATCH 09/13] target/arm/kvm: Export kvm_arm_get_sve_vls Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-12 8:36 ` [PATCH 10/13] target/arm/monitor: kvm: only return valid sve vector sets Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-12 8:36 ` [PATCH 11/13] target/arm/cpu64: max cpu: Introduce sve-vls-map Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-13 11:26 ` Dave Martin
2019-05-13 11:26 ` [Qemu-devel] " Dave Martin
2019-05-13 12:30 ` Andrew Jones
2019-05-13 12:30 ` Andrew Jones
2019-05-13 12:41 ` Dave Martin
2019-05-13 12:41 ` Dave Martin
2019-05-13 12:57 ` Andrew Jones
2019-05-13 12:57 ` Andrew Jones
2019-05-13 13:12 ` Dave Martin
2019-05-13 13:12 ` Dave Martin
2019-05-13 13:45 ` Andrew Jones
2019-05-13 13:45 ` Andrew Jones
2019-05-13 14:35 ` Dave Martin
2019-05-13 14:35 ` Dave Martin
2019-05-13 15:25 ` Markus Armbruster
2019-05-13 15:25 ` Markus Armbruster
2019-05-13 18:31 ` Andrew Jones
2019-05-13 18:31 ` Andrew Jones
2019-05-12 8:36 ` [PATCH 12/13] target/arm/kvm: max cpu: Add support for sve-vls-map Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-12 8:36 ` [PATCH 13/13] target/arm/kvm: host " Andrew Jones
2019-05-12 8:36 ` [Qemu-devel] " Andrew Jones
2019-05-13 15:37 ` Markus Armbruster
2019-05-13 15:37 ` Markus Armbruster
2019-05-13 18:33 ` Andrew Jones
2019-05-13 18:33 ` Andrew Jones
2019-05-13 9:32 ` [PATCH 00/13] target/arm/kvm: enable SVE in guests Andrea Bolognani
2019-05-13 9:32 ` [Qemu-devel] " Andrea Bolognani
2019-05-13 11:15 ` Dave Martin
2019-05-13 11:15 ` [Qemu-devel] " Dave Martin
2019-05-13 12:38 ` Andrew Jones
2019-05-13 12:38 ` [Qemu-devel] " Andrew Jones
2019-05-13 12:50 ` Dave Martin
2019-05-13 12:50 ` [Qemu-devel] " Dave Martin
2019-05-13 12:36 ` Andrew Jones
2019-05-13 12:36 ` Andrew Jones
2019-05-14 12:29 ` Andrea Bolognani
2019-05-14 12:29 ` Andrea Bolognani
2019-05-14 12:53 ` Andrew Jones
2019-05-14 16:03 ` Andrea Bolognani
2019-05-14 20:14 ` Richard Henderson
2019-05-15 8:03 ` Andrea Bolognani
2019-05-15 11:14 ` Dave Martin
2019-05-15 11:14 ` Dave Martin
2019-05-15 11:28 ` Andrea Bolognani
2019-05-15 11:28 ` Andrea Bolognani
2019-05-15 12:47 ` Dave Martin
2019-05-15 12:47 ` Dave Martin
2019-05-15 9:15 ` Andrew Jones
2019-05-13 9:52 ` Peter Maydell
2019-05-13 9:52 ` [Qemu-devel] " Peter Maydell
2019-05-13 12:43 ` Andrew Jones
2019-05-13 12:43 ` Andrew Jones
2019-05-13 18:46 ` Richard Henderson
2019-05-13 18:46 ` [Qemu-devel] " Richard Henderson
2019-05-13 19:16 ` Andrew Jones
2019-05-13 19:16 ` [Qemu-devel] " Andrew Jones
2019-05-14 9:05 ` Peter Maydell
2019-05-14 9:05 ` [Qemu-devel] " Peter Maydell
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=874l5xa9ds.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=Dave.Martin@arm.com \
--cc=abologna@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=drjones@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/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.