[RFC v3 01/32] RFC: docs: add supported host CPUs section

marcandre.lureau@redhat.com posted 32 patches 4 years ago
[RFC v3 01/32] RFC: docs: add supported host CPUs section
Posted by marcandre.lureau@redhat.com 4 years ago
From: Marc-André Lureau <marcandre.lureau@redhat.com>

I was looking for such documentation, but couldn't find it.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 docs/about/build-platforms.rst | 28 ++++++++++++++++++++++++++++
 meson.build                    |  2 +-
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index 692323609e..bfe90e574e 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -29,6 +29,34 @@ The `Repology`_ site is a useful resource to identify
 currently shipped versions of software in various operating systems,
 though it does not cover all distros listed below.
 
+Supported host CPUs
+-------------------
+
+Those host CPUs have a native TCG backend and are regularly tested:
+
+  .. list-table::
+   :header-rows: 1
+
+   * - CPU Family
+     - Accelerators
+   * - ARM
+     - kvm, xen
+   * - MIPS
+     - kvm
+   * - PPC
+     - kvm
+   * - RISC-V
+     -
+   * - s390x
+     - kvm
+   * - SPARC
+     -
+   * - x86
+     - kvm, xen, hax, hvf (64 bit only), nvmm, whpx (64 bit only)
+
+Other architectures are not actively maintained. They use the slow and
+experimental TCG interpreter. They may be removed in future releases.
+
 Linux OS, macOS, FreeBSD, NetBSD, OpenBSD
 -----------------------------------------
 
diff --git a/meson.build b/meson.build
index 7e58e6279b..9e43c9b311 100644
--- a/meson.build
+++ b/meson.build
@@ -78,7 +78,7 @@ endif
 
 accelerator_targets = { 'CONFIG_KVM': kvm_targets }
 if cpu in ['x86', 'x86_64', 'arm', 'aarch64']
-  # i368 emulator provides xenpv machine type for multiple architectures
+  # i386 emulator provides xenpv machine type for multiple architectures
   accelerator_targets += {
     'CONFIG_XEN': ['i386-softmmu', 'x86_64-softmmu'],
   }
-- 
2.33.0.113.g6c40894d24


Re: [RFC v3 01/32] RFC: docs: add supported host CPUs section
Posted by Peter Maydell 4 years ago
On Tue, 7 Sept 2021 at 13:23, <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> I was looking for such documentation, but couldn't find it.

Yes; this is definitely something we should document, and in
the build-platforms doc is as good a place as any.

> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  docs/about/build-platforms.rst | 28 ++++++++++++++++++++++++++++
>  meson.build                    |  2 +-
>  2 files changed, 29 insertions(+), 1 deletion(-)
>
> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> index 692323609e..bfe90e574e 100644
> --- a/docs/about/build-platforms.rst
> +++ b/docs/about/build-platforms.rst
> @@ -29,6 +29,34 @@ The `Repology`_ site is a useful resource to identify
>  currently shipped versions of software in various operating systems,
>  though it does not cover all distros listed below.
>
> +Supported host CPUs
> +-------------------
> +
> +Those host CPUs have a native TCG backend and are regularly tested:

This is a list of host architectures, not CPUs.

> +  .. list-table::
> +   :header-rows: 1
> +
> +   * - CPU Family
> +     - Accelerators
> +   * - ARM

The correct capitalization these days is "Arm", by the way :-)

You also should split 64-bit and 32-bit Arm; we support
KVM on 64-bit but not 32-bit.

> +     - kvm, xen
> +   * - MIPS
> +     - kvm
> +   * - PPC
> +     - kvm
> +   * - RISC-V
> +     -
> +   * - s390x
> +     - kvm
> +   * - SPARC
> +     -
> +   * - x86
> +     - kvm, xen, hax, hvf (64 bit only), nvmm, whpx (64 bit only)
> +
> +Other architectures are not actively maintained. They use the slow and
> +experimental TCG interpreter. They may be removed in future releases.

This seems to be conflating TCG and the TCG interpreter.
We should just list which architectures we support (proper)
TCG for, and say that everything else is unsupported
(not mentioning the TCG interpreter at all; using it is
pretty much always a mistake IMHO).

The table also seems to me to be a bit confusing, because
the introductory text suggests it's a list of the TCG
support for each architecture, but the table itself lists
only the non-TCG accelerators. I think we should just list
all the accelerators supported for each host architecture.

Perhaps we should also (eventually) have somewhere some text
describing each accelerator in more detail, though probably
not in this file. A docs/system/accels.rst that described all
the accelerators with a paragraph or so for each, maybe ?

-- PMM

Re: [RFC v3 01/32] RFC: docs: add supported host CPUs section
Posted by Marc-André Lureau 3 years, 12 months ago
Hi

On Tue, Sep 7, 2021 at 4:34 PM Peter Maydell <peter.maydell@linaro.org>
wrote:

> On Tue, 7 Sept 2021 at 13:23, <marcandre.lureau@redhat.com> wrote:
> >
> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >
> > I was looking for such documentation, but couldn't find it.
>
> Yes; this is definitely something we should document, and in
> the build-platforms doc is as good a place as any.
>
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> >  docs/about/build-platforms.rst | 28 ++++++++++++++++++++++++++++
> >  meson.build                    |  2 +-
> >  2 files changed, 29 insertions(+), 1 deletion(-)
> >
> > diff --git a/docs/about/build-platforms.rst
> b/docs/about/build-platforms.rst
> > index 692323609e..bfe90e574e 100644
> > --- a/docs/about/build-platforms.rst
> > +++ b/docs/about/build-platforms.rst
> > @@ -29,6 +29,34 @@ The `Repology`_ site is a useful resource to identify
> >  currently shipped versions of software in various operating systems,
> >  though it does not cover all distros listed below.
> >
> > +Supported host CPUs
> > +-------------------
> > +
> > +Those host CPUs have a native TCG backend and are regularly tested:
>
> This is a list of host architectures, not CPUs.
>

Isn't it CPU architecture we are talking about? (CPU for short in the title)


> > +  .. list-table::
> > +   :header-rows: 1
> > +
> > +   * - CPU Family
>

 I'll change this to CPU Architecture

> +     - Accelerators
> > +   * - ARM
>
> The correct capitalization these days is "Arm", by the way :-)
>
>
ok

You also should split 64-bit and 32-bit Arm; we support
> KVM on 64-bit but not 32-bit.
>
>
When such a difference exists, I just added "(64 bit only)", see below for
x86.


> > +     - kvm, xen
> > +   * - MIPS
> > +     - kvm
> > +   * - PPC
> > +     - kvm
> > +   * - RISC-V
> > +     -
> > +   * - s390x
> > +     - kvm
> > +   * - SPARC
> > +     -
> > +   * - x86
> > +     - kvm, xen, hax, hvf (64 bit only), nvmm, whpx (64 bit only)
> > +
> > +Other architectures are not actively maintained. They use the slow and
> > +experimental TCG interpreter. They may be removed in future releases.
>
> This seems to be conflating TCG and the TCG interpreter.
> We should just list which architectures we support (proper)
> TCG for, and say that everything else is unsupported
> (not mentioning the TCG interpreter at all; using it is
> pretty much always a mistake IMHO).
>

ok


> The table also seems to me to be a bit confusing, because
> the introductory text suggests it's a list of the TCG
> support for each architecture, but the table itself lists
> only the non-TCG accelerators. I think we should just list
> all the accelerators supported for each host architecture.
>

All the architectures we support (in the list) have proper TCG, right?

>
> Perhaps we should also (eventually) have somewhere some text
> describing each accelerator in more detail, though probably
> not in this file. A docs/system/accels.rst that described all
> the accelerators with a paragraph or so for each, maybe ?
>

That could be really useful, but I am not up to the task at this point.

thanks
Re: [RFC v3 01/32] RFC: docs: add supported host CPUs section
Posted by Peter Maydell 3 years, 12 months ago
On Mon, 13 Sept 2021 at 12:32, Marc-André Lureau
<marcandre.lureau@redhat.com> wrote:
>
> Hi
>
> On Tue, Sep 7, 2021 at 4:34 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Tue, 7 Sept 2021 at 13:23, <marcandre.lureau@redhat.com> wrote:
>> >
>> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
>> >
>> > I was looking for such documentation, but couldn't find it.
>>
>> Yes; this is definitely something we should document, and in
>> the build-platforms doc is as good a place as any.
>>
>> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>> > ---
>> >  docs/about/build-platforms.rst | 28 ++++++++++++++++++++++++++++
>> >  meson.build                    |  2 +-
>> >  2 files changed, 29 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
>> > index 692323609e..bfe90e574e 100644
>> > --- a/docs/about/build-platforms.rst
>> > +++ b/docs/about/build-platforms.rst
>> > @@ -29,6 +29,34 @@ The `Repology`_ site is a useful resource to identify
>> >  currently shipped versions of software in various operating systems,
>> >  though it does not cover all distros listed below.
>> >
>> > +Supported host CPUs
>> > +-------------------
>> > +
>> > +Those host CPUs have a native TCG backend and are regularly tested:
>>
>> This is a list of host architectures, not CPUs.
>
>
> Isn't it CPU architecture we are talking about? (CPU for short in the title)

My point is that "CPU" != "CPU architecture". "CPU" is something
like "Skylake" or "Cortex-A15". "CPU architecture" is "x86-64",
"arm", etc.

>> The table also seems to me to be a bit confusing, because
>> the introductory text suggests it's a list of the TCG
>> support for each architecture, but the table itself lists
>> only the non-TCG accelerators. I think we should just list
>> all the accelerators supported for each host architecture.
>
>
> All the architectures we support (in the list) have proper TCG, right?

Yes.

thanks
-- PMM