If you want to boot with more than 8 harts then you also need to increase the CONFIG_NR_CPUS in the kernel. Along with change in QEMU - VIRT_CPUS_MAX in "include/hw/riscv/virt.h"
But, the limit of 8 is low and should be increased. Don't know the reason why its 8. On Sep 22 2021, at 10:19 pm, Mark Wyse <wy...@cs.washington.edu> wrote: > Hello all, > > Apologies if I missed the answer in the docs, but I am wondering why the virt > machine is limited to only 8 cores when running RISC-V 64 system emulation? I > am interested in booting a 16, 24, or even 32 core SMP Linux kernel with > OpenSBI as the bootloader on the generic virt machine before adding a custom > machine definition. I was able to successfully boot Linux kernel 5.9.0 with > OpenSBI v0.9 and 8 cores/harts with an ext4 filesystem provided by Buildroot. > > I poked around the docs and source code a bit, and found mention of the core > count limit in the docs > (https://qemu.readthedocs.io/en/latest/system/riscv/virt.html), but no reason > as to why this is the limit. It also appears that providing a custom device > tree blob and setting QEMU's -smp option to match might overcome this > limitation, but it would be better if more than 8 cores was supported > directly. > > Best, > Mark > > Mark Wyse > pronouns: he/him/his > PhD Student > Paul G. Allen School of Computer Science & Engineering > University of Washington > > > > > > >