On Tue, May 6, 2025 at 8:47 AM Daniel Henrique Barboza
<dbarb...@ventanamicro.com> wrote:
>
> Hi Alistair,
>
>
> I think we should push this upstream and see what happens. We'll have a
> full release cycle to undo the change in case we find unintended side
> effects. I'm fairly optimistic that this change will be a no-op for most
> users and will benefit us when we'll have to deal with RVA23 specific
> software.

I worry it will cause us grief in the future. I think if we are
changing it we should just drop any default.

With profiles now becoming popular it's easy for users to just pick a
profile CPU when starting the machine.

Alistair

>
>
> Thanks,
>
> Daniel
>
> On 4/4/25 12:27 PM, Daniel Henrique Barboza wrote:
> > Hi,
> >
> > The 'rv64' CPU, the default CPU for the 'virt' machine, is a strange
> > CPU. It is a collection of extensions that were enabled/disabled as
> > extensions were being added in TCG, and in the end we ended up with a
> > CPU that we can't say exactly what it does.
> >
> > This is further aggravated by the distros move to support the RVA23
> > profile. Patch 2 has more details, but long story short: distros uses
> > the 'virt' machine, and they'll start building on top of RVA23, and rv64
> > does not have RVA23 support. In short, distros will start to break in
> > the default 'virt' CPU.
> >
> > Changing the default CPU to 'max' will not cause (intentional) user
> > regressions: if the software runs in rv64 it will run in 'max' too given
> > that we're adding more extensions as default instead of removing them.
> > In my opinion this might be enough to avoid a deprecation cycle and we
> > can do the change for 10.1.
> >
> > And yeah, patch 2 mentions the already old trope "and ARM does the
> > same". This is intentional: I want RISC-V code and usability to be as
> > close as possible to ARM and other archs to promote a more homogeneous
> > experience when developing and using QEMU.
> >
> >
> > Daniel Henrique Barboza (2):
> >    target/riscv/tcg: make 'max' cpu rva23s64 compliant
> >    hw/riscv/virt.c: change default CPU to 'max'
> >
> >   hw/riscv/virt.c            | 2 +-
> >   target/riscv/tcg/tcg-cpu.c | 2 ++
> >   2 files changed, 3 insertions(+), 1 deletion(-)
> >
>
>

Reply via email to