QEMU用户态仿真运行SPEC2017浮点用例内存不足问题及内存设置方法咨询
QEMU用户态仿真运行SPEC2017浮点用例内存不足问题及内存设置方法咨询
你遇到的这个问题很典型——SPEC2017里的部分浮点测试用例(比如你尝试运行的cam4)对内存的需求确实比整数用例高不少,而QEMU用户态仿真默认的虚拟地址空间大小大概率满足不了它们的运行要求。
针对QEMU用户态的内存设置,其实有个专门的参数可以解决这个问题:
- 使用
-R(或者等价的长选项--virtual-size)来指定进程可使用的虚拟内存总大小
你只需要把这个参数加到原有命令里,调整到足够的内存容量即可,比如尝试给8G虚拟内存的命令如下:
./qemu-riscv64 -R 8G ./cam4_s_base.rv64-m64
这里给你几个小建议:
- 可以根据实际测试情况调整内存数值,如果8G还是不够,不妨尝试16G;如果宿主机内存有限,也可以先从4G开始测试,找到合适的阈值
- 要确保你的宿主机本身有足够的物理内存或者交换空间来支撑这个设置,避免宿主机因为内存过载出现异常
另外补充一点:从你整数用例能正常运行的情况来看,你的QEMU和SPEC2017的基础环境配置是没问题的,重点就放在调整虚拟内存大小上就好。
备注:内容来源于stack exchange,提问作者Jiahe Xiao
相关产品推荐
相关产品推荐

