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