On Mon, 6 Jan 2025 at 21:54, Mitchell Augustin
<mitchell.augus...@canonical.com> wrote:
> I see that we can run programs built with SVE on non-SVE-supporting
> hosts via `qemu-aarch64 -cpu max,sve-default-vector-length=256` (from
> the arm docs: 
> https://learn.arm.com/learning-paths/servers-and-cloud-computing/sve/sve_armie/),
> but I am having trouble figuring out a way to apply this to a full
> system VM launched with `qemu-system-aarch64`. On the same host
> machine on which I am able to run a program compiled with SVE using
> `qemu-aarch64`, trying to launch a system VM with these parameters
> errors out: "qemu-system-aarch64: can't apply global
> max-arm-cpu.sve-default-vector-length=256: Property
> 'max-arm-cpu.sve-default-vector-length' not found"

You don't say what your command line is...

> Is emulating sve on qemu-system-aarch64 with a non-sve host supported,
> and if so, would someone be able to point me to some info on the
> correct way to configure that?

Yes, for emulation we don't care about the host CPU architecture
at all, so this works fine. There's probably just a minor
problem with the command line options you're trying.

In particular, the sve-default-vector-length property is for
user-mode emulation only. With system emulation, you're going to
be booting a complete guest kernel, and you should configure
the default-vector-length for userspace programs the same
way you would for booting a kernel on real SVE hardware,
by setting its /proc/sys/abi/sve_default_vector_length .

-- PMM

Reply via email to