3.1. CPU拓扑配置
1. 单线程配置
配置A:-smp 2,maxcpus=4,cores=2,threads=1,sockets=2
配置B:-smp 2,maxcpus=4,cores=4,threads=1,sockets=1
1.1.配置A
插槽(Scokets):2个物理插槽
核心(Cores):每个插槽含2个核心
线程(Threads):单线程(无超线程)
vcpu分配:
初始2个vcpu:socket0/core0,socket0/core1
可热插拔2vcpu:socket1/core0,socket1/core1
跨插槽热插拔:
#添加vcpu到socket 1
(qemu)
(qemu) device_add la464-loongarch-cpu,socket-id=1,core-id=0,thread-id=0,id=vcpu2
(qemu)
(qemu) device_add la464-loongarch-cpu,socket-id=1,core-id=1,thread-id=0,id=vcpu3
(qemu)
1.2. 配置B
插槽(Scokets):1个物理插槽
核心(Cores):每个插槽含4个核心
线程(Threads):单线程(无超线程)
vcpu分配:
初始2个vcpu:socket0/core0,socket0/core1
可热插拔2vcpu:socket0/core2,socket1/core3
单插槽热插拔:
(qemu)
(qemu) device_add la464-loongarch-cpu,socket-id=0,core-id=2,thread-id=0,id=vcpu2
(qemu)
(qemu) device_add la464-loongarch-cpu,socket-id=0,core-id=3,thread-id=0,id=vcpu3
(qemu)
2. 多线程配置
配置C:-smp 2,maxcpus=4,cores=2,threads=2,sockets=1
配置D:-smp 2,maxcpus=8,cores=2,threads=2,sockets=2
2.1. 配置C
插槽(Scokets):1个物理插槽
核心(Cores):每个插槽含2个核心
线程(Threads):双线程(超线程)
cpu拓扑结构图
Socket 0 (NUMA Node 0) # 单插槽单 NUMA 节点
├─ Core 0 # 物理核心 0
│ ├─ Thread 0 → vCPU 0 (初始启用)
│ └─ Thread 1 → vCPU 1 (初始启用)
└─ Core 1 # 物理核心 1
├─ Thread 0 → vCPU 2 (可热插拔)
└─ Thread 1 → vCPU 3 (可热插拔)
2.2. 配置D
插槽(Scokets):2个物理插槽
核心(Cores):每个插槽含2个核心
线程(Threads):双线程(超线程)
cpu拓扑结构图
Socket 0 (NUMA Node 0)
├─ Core 0
│ ├─ Thread 0 → vCPU 0 (初始启用)
│ └─ Thread 1 → vCPU 1 (初始启用)
└─ Core 1
├─ Thread 0 → vCPU 2 (可热插拔)
└─ Thread 1 → vCPU 3 (可热插拔)
Socket 1 (NUMA Node 1)
├─ Core 0
│ ├─ Thread 0 → vCPU 4 (可热插拔)
│ └─ Thread 1 → vCPU 5 (可热插拔)
└─ Core 1
├─ Thread 0 → vCPU 6 (可热插拔)
└─ Thread 1 → vCPU 7 (可热插拔)
3. qemu启动命令
以配置B为例,完整的qemu启动命令(增加了网络配置):
/usr/bin/qemu-system-loongarch64 \-machine virt,accel=kvm \-nodefaults \-m 2048 \-smp 2,maxcpus=4,cores=4,threads=1,sockets=1 \-cpu 'la464-loongarch-cpu' \-bios /usr/share/edk2/loongarch64/QEMU_EFI.fd \-drive file=/home/OpenCloudOS-9.4.qcow2,if=virtio \-nographic \-serial stdio \-netdev user,id=net1,hostfwd=tcp::2222-:22 \-device virtio-net-pci,netdev=net1 \-monitor telnet:localhost:4444,server,nowait \-msg timestamp=on