Hi Salil,
On 10/22/25 8:07 PM, Gavin Shan wrote:
On 10/1/25 11:01 AM, [email protected] wrote:
===================
(VII) Commands Used
===================
A. Qemu launch commands to init the machine (with 6 possible vCPUs):
$ qemu-system-aarch64 --enable-kvm -machine virt,gic-version=3 \
-cpu host -smp cpus=4,disabled=2 \
-m 300M \
-kernel Image \
-initrd rootfs.cpio.gz \
-append "console=ttyAMA0 root=/dev/ram rdinit=/init maxcpus=2 acpi=force" \
-nographic \
-bios QEMU_EFI.fd \
The parameter 'disabled=2' isn't correct here and it needs to be
'disabledcpus=2'.
Otherwise, the VM won't be started due to the unrecognized parameter.
$ /home/gavin/sandbox/qemu.main/build/qemu-system-aarch64 \
--enable-kvm -machine virt,gic-version=3 -cpu host,sve=off \
-smp cpus=4,disabled=2 -m 1024M \
-kernel /home/gavin/sandbox/linux.guest/arch/arm64/boot/Image \
-initrd /home/gavin/sandbox/images/rootfs.cpio.xz -nographic
qemu-system-aarch64: Parameter 'smp.disabled' is unexpected
Apart from the issues that were reported previously, there are more issues.
some of them may be invalid. I'm sharing the extra issues below.
The VM is always started using the following command lines.
host$ /home/gavin/sandbox/qemu.main/build/qemu-system-aarch64 \
-accel kvm -machine virt,gic-version=host,nvdimm=on \
-cpu host,sve=off \
-smp maxcpus=4,cpus=2,disabledcpus=2,sockets=2,clusters=2,cores=1,threads=1 \
-m 4096M,slots=16,maxmem=128G -object memory-backend-ram,id=mem0,size=2048M \
-object memory-backend-ram,id=mem1,size=2048M \
-numa node,nodeid=0,memdev=mem0,cpus=0-1 \
-numa node,nodeid=1,memdev=mem1,cpus=2-3 \
-L /home/gavin/sandbox/qemu.main/build/pc-bios \
-monitor none -serial mon:stdio \
-nographic -gdb tcp::6666 -qmp tcp:localhost:5555,server,wait=off \
-bios /home/gavin/sandbox/qemu.main/build/pc-bios/edk2-aarch64-code.fd \
-kernel /home/gavin/sandbox/linux.guest/arch/arm64/boot/Image \
-initrd /home/gavin/sandbox/images/rootfs.cpio.xz \
-append memhp_default_state=online_movable
[Issue-1]: Inconsistent output from 'qom-list /machine/unattached'. The disabled
CPU device doesn't show up at the beginning, but it appears after it's hot
added.
However, the CPU device is still seen after it's hot removed.
(qemu) qom-list /machine/unattached
device[0] (child<host-arm-cpu>)
device[1] (child<host-arm-cpu>)
:
(qemu) device_set host-arm-cpu,socket-id=1,admin-state=enable
(qemu) qom-list /machine/unattached
device[0] (child<host-arm-cpu>)
device[1] (child<host-arm-cpu>)
device[42] (child<host-arm-cpu>)
:
(qemu) device_set host-arm-cpu,socket-id=1,admin-state=disable
(qemu) qom-list /machine/unattached
device[0] (child<host-arm-cpu>)
device[1] (child<host-arm-cpu>)
device[42] (child<host-arm-cpu>)
[Issue-2]: The hot added CPU disappears after a system reset
guest$ cat /sys/devices/system/cpu/online
0-1
(qemu) device_set host-arm-cpu,socket-id=1,admin-state=enable
guest$ echo 1 > /sys/devices/system/cpu/cpu2/online
guest$ cat /sys/devices/system/cpu/online
0-2
(qemu) system_reset
guest$ cat /sys/devices/system/cpu/online
0-1
[Issue-3] PCDIMM is unable to be hot added.
(qemu) object_add memory-backend-ram,id=hp-mem0,size=512M
(qemu) device_add pc-dimm,id=hp-dimm0,memdev=hp-mem0,node=0
Error: Parameter 'driver' expects a pluggable device type or which supports
changing power-state administratively
Thanks,
Gavin