You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用qemu-system-aarch64模拟big.LITTLE大小核平台?

qemu-system-aarch64 模拟big.LITTLE大小核平台配置方案

QEMU AArch64的virt通用板型从5.2版本开始原生支持异构CPU拓扑,不需要修改源码,通过smp拓扑声明+手动挂载不同型号CPU设备的方式即可实现big.LITTLE模拟,之前参数不生效基本都是因为直接通过-cpu指定全局CPU型号,导致所有核被强制设为同架构。

可直接运行的参考参数

以下配置用4核Cortex-A72作为大核、4核Cortex-A53作为小核,是ARM官方标准big.LITTLE组合,兼容主线6.x以上版本内核、Buildroot/Debian等常见arm64根文件系统:

qemu-system-aarch64 \
  -machine virt,gic-version=3,accel=tcg \
  # 声明总CPU拓扑:共8核,分2个簇对应大小核,每簇4核,不支持超线程
  -smp 8,sockets=2,clusters=2,cores=4,threads=1 \
  # 设置全局CPU特性基线,关闭PMU避免异构核PMU事件不兼容报错
  -cpu max,pmu=off \
  # 手动挂载大核簇:socket0下4个Cortex-A72
  -device cortex-a72,socket-id=0,cluster-id=0,core-id=0,thread-id=0 \
  -device cortex-a72,socket-id=0,cluster-id=0,core-id=1,thread-id=0 \
  -device cortex-a72,socket-id=0,cluster-id=0,core-id=2,thread-id=0 \
  -device cortex-a72,socket-id=0,cluster-id=0,core-id=3,thread-id=0 \
  # 手动挂载小核簇:socket1下4个Cortex-A53
  -device cortex-a53,socket-id=1,cluster-id=1,core-id=0,thread-id=0 \
  -device cortex-a53,socket-id=1,cluster-id=1,core-id=1,thread-id=0 \
  -device cortex-a53,socket-id=1,cluster-id=1,core-id=2,thread-id=0 \
  -device cortex-a53,socket-id=1,cluster-id=1,core-id=3,thread-id=0 \
  # 以下为常规启动参数,根据自己的镜像调整即可
  -m 4G \
  -kernel <你的arm64内核镜像路径> \
  -drive file=<你的根文件系统镜像路径>,if=virtio,format=raw \
  -append "root=/dev/vda1 console=ttyAMA0 rw" \
  -nographic

如果是在arm64架构宿主机上运行,可以把accel=tcg改成accel=kvm获得接近原生的运行性能,注意KVM模式下模拟的CPU特性不能超出宿主机CPU支持的范围。

常见配置踩坑

  • 不要直接在-cpu参数后指定具体CPU型号(比如-cpu cortex-a72),否则QEMU会默认给所有核创建同型号实例,后续手动添加的异构核会触发拓扑冲突报错,启动直接失败。
  • 拓扑ID必须和-smp声明的层级完全匹配:手动添加的所有CPU设备的socket-id/cluster-id/core-id不能重复,总核数要和-smp后面跟的总核数一致,否则会报CPU拓扑校验错误。
  • 版本要求:尽量用QEMU 6.0及以上稳定版,5.x版本存在异构CPU设备表生成bug,内核启动后无法正确识别大小核调度域,EAS(能耗感知调度)不会生效。
  • 如果需要模拟大小核的性能差异,可以在加CPU设备时通过cntfrq参数设置不同的CPU时钟频率,比如给大核设cntfrq=2400000000(2.4GHz)、小核设cntfrq=1200000000(1.2GHz),调度器会根据频率差做任务迁移。

配置有效性验证

系统启动后执行以下命令确认大小核识别正常:

# 查看每个CPU核的型号
cat /sys/devices/system/cpu/cpu*/of_node/compatible

正常输出会包含4条arm,cortex-a72和4条arm,cortex-a53记录,说明异构拓扑已经被内核正确识别。

内容的提问来源于stack exchange,提问作者WuXianChangKuang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:15:40