[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 12/54] target/riscv: deprecate the 'any' CPU type
From: |
Peter Maydell |
Subject: |
Re: [PULL 12/54] target/riscv: deprecate the 'any' CPU type |
Date: |
Fri, 20 Oct 2023 11:10:42 +0100 |
On Thu, 19 Oct 2023 at 19:32, Daniel Henrique Barboza
<dbarboza@ventanamicro.com> wrote:
>
>
>
> On 10/19/23 15:13, Richard Henderson wrote:
> > On 10/11/23 21:10, Alistair Francis wrote:
> >> From: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
> >>
> >> The 'any' CPU type was introduced in commit dc5bd18fa5725 ("RISC-V CPU
> >> Core Definition"), being around since the beginning. It's not an easy
> >> CPU to use: it's undocumented and its name doesn't tell users much about
> >> what the CPU is supposed to bring. 'git log' doesn't help us either in
> >> knowing what was the original design of this CPU type.
> >>
> >> The closest we have is a comment from Alistair [1] where he recalls from
> >> memory that the 'any' CPU is supposed to behave like the newly added
> >> 'max' CPU. He also suggested that the 'any' CPU should be removed.
> >>
> >> The default CPUs are rv32 and rv64, so removing the 'any' CPU will have
> >> impact only on users that might have a script that uses '-cpu any'.
> >> And those users are better off using the default CPUs or the new 'max'
> >> CPU.
> >>
> >> We would love to just remove the code and be done with it, but one does
> >> not simply remove a feature in QEMU. We'll put the CPU in quarantine
> >> first, letting users know that we have the intent of removing it in the
> >> future.
> >>
> >> [1] https://lists.gnu.org/archive/html/qemu-devel/2023-07/msg02891.html
> >>
> >> Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
> >> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
> >> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
> >> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> >> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> >> Message-ID: <20230912132423.268494-13-dbarboza@ventanamicro.com>
> >> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> >> ---
> >> docs/about/deprecated.rst | 12 ++++++++++++
> >> target/riscv/cpu.c | 5 +++++
> >> 2 files changed, 17 insertions(+)
> >>
> >> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> >> index 8b136320e2..5e3965a674 100644
> >> --- a/docs/about/deprecated.rst
> >> +++ b/docs/about/deprecated.rst
> >> @@ -327,6 +327,18 @@ QEMU's ``vhost`` feature, which would eliminate the
> >> high latency costs under
> >> which the 9p ``proxy`` backend currently suffers. However as of to date
> >> nobody
> >> has indicated plans for such kind of reimplementation unfortunately.
> >> +RISC-V 'any' CPU type ``-cpu any`` (since 8.2)
> >
> > You forgot to update linux-user/riscv/target_elf.h, which still uses "any",
> > and thus all qemu-riscv64 invocations trigger the warning.
>
> Ouch. I'll send a patch.
This is probably why the 'any' cpu exists in the first place,
incidentally -- linux-user wants a way to say "run any binary
you can", and for a lot of architectures that was done by having
an "any" CPU type that turned on all known features. The idea
of having "max" and making it available to system emulation
as well as usermode is a bit of a later development.
thanks
-- PMM
- [PULL 03/54] target/riscv/cpu.c: split kvm prop handling to its own helper, (continued)
- [PULL 03/54] target/riscv/cpu.c: split kvm prop handling to its own helper, Alistair Francis, 2023/10/12
- [PULL 04/54] target/riscv: add DEFINE_PROP_END_OF_LIST() to riscv_cpu_options[], Alistair Francis, 2023/10/12
- [PULL 05/54] target/riscv/cpu.c: split non-ratified exts from riscv_cpu_extensions[], Alistair Francis, 2023/10/12
- [PULL 08/54] target/riscv/cpu.c: add riscv_cpu_add_kvm_unavail_prop_array(), Alistair Francis, 2023/10/12
- [PULL 07/54] target/riscv/cpu.c: add riscv_cpu_add_qdev_prop_array(), Alistair Francis, 2023/10/12
- [PULL 11/54] avocado, risc-v: add tuxboot tests for 'max' CPU, Alistair Francis, 2023/10/12
- [PULL 10/54] target/riscv: add 'max' CPU type, Alistair Francis, 2023/10/12
- [PULL 12/54] target/riscv: deprecate the 'any' CPU type, Alistair Francis, 2023/10/12
- [PULL 13/54] target/riscv/cpu.c: use offset in isa_ext_is_enabled/update_enabled, Alistair Francis, 2023/10/12
- [PULL 14/54] target/riscv: make CPUCFG() macro public, Alistair Francis, 2023/10/12
- [PULL 06/54] target/riscv/cpu.c: split vendor exts from riscv_cpu_extensions[], Alistair Francis, 2023/10/12
- [PULL 09/54] target/riscv/cpu.c: limit cfg->vext_spec log message, Alistair Francis, 2023/10/12
- [PULL 16/54] target/riscv/cpu.c: use cpu_cfg_ext_auto_update() during realize(), Alistair Francis, 2023/10/12
- [PULL 15/54] target/riscv/cpu.c: introduce cpu_cfg_ext_auto_update(), Alistair Francis, 2023/10/12
- [PULL 17/54] target/riscv/cpu.c: introduce RISCVCPUMultiExtConfig, Alistair Francis, 2023/10/12
- [PULL 18/54] target/riscv: use isa_ext_update_enabled() in init_max_cpu_extensions(), Alistair Francis, 2023/10/12
- [PULL 19/54] target/riscv/cpu.c: honor user choice in cpu_cfg_ext_auto_update(), Alistair Francis, 2023/10/12
- [PULL 20/54] target/riscv/cpu.c: consider user option with RVG, Alistair Francis, 2023/10/12