在Gem5中运行Spec '06基准测试遇栈扩容后停滞求助
在Gem5中运行Spec '06基准测试时遭遇无限停滞问题
我正尝试在Gem5中运行Spec '06基准测试,所有测试的基准程序均能正常启动,但输出以下信息后便无限停滞:
src/sim/mem_state.cc:448: info: Increasing stack size by one page.
部分测试会多次输出该信息后停滞,部分仅输出一次。这里的停滞指进程无任何输出(即使等待数天)但未崩溃,而我预期进程应定期产生输出。
我发现网上也有其他用户遇到相同问题,但未找到解决方案。我已尝试以下方法:
- 修改
sim/process.cc和arch/x86/process.cc中的栈大小,从8 * 1024 * 1024改为256 * 1024 * 1024 - 将配置文件中的物理内存大小增加至
8GB - 提升配置文件中的CPU速度至
4GHz - 在
src/sim/syscall_emul.hh中,将rlp->rlim_cur = rlp->rlim_max * 8 * 1024 * 1024修改为rlp->rlim_cur = rlp->rlim_max * 64 * 1024 * 1024 - 将测试从Docker容器迁移至拥有5.2GB空闲内存、7.5GB空闲交换空间的服务器,进程仅占用0.8%内存和48核中的1核满负载
- 使用
--mem-size=8GB参数启动进程 - 在21字节的模拟输入文件上运行最简单的Spec基准测试401.bzip2
- 分别尝试使用ramulator2作为DRAM管理器和不使用该管理器:使用ramulator2时触发崩溃错误:
fatal: fatal condition freePages() <= 0 occurred: Out of memory, please increase size of physical memory. Memory Usage: 376876 KBytes
我联系到一位曾遇到相同问题的用户,他给出的建议是:
iirc it is coming because your dram size in gem5 simulation is greater than the size of main memory i.e. dram of the host machine (your pc or laptop). It is crudely similar to the case when you try to install a software bigger than your ssd and your os says not enough space.Try reducing the dram size in the simulation config or running it on a different machine
但我无法理解该情况——运行测试的服务器内存充足,且我已尝试使用仅配置512MB内存的Gem5配置文件运行测试,问题依旧。
请问是否有人遇到过此类问题?恳请提供帮助,如需我的配置文件我可提供。
内容的提问来源于stack exchange,提问作者Martin Chapman
相关产品推荐
相关产品推荐

