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(-) > > > >