在gem5中使用多核O3CPU加载FS模式

问题描述

我需要在64个O3内核上运行fs模式。

根据: How to run a gem5 arm aarch64 full system simulation with fs.py with more than 8 cores? 我应该使用以下两种方法之一: GICv2扩展 GICv3

但是当我添加命令时:

--param 'system.realview.gic.gem5_extensions = True

终端继续输出类似于以下内容的信息:

Warn:context 2:1900000 consecutive store conditional failures

当我添加命令时:

--machine-type VExpress_GEM5_V2

终端输出以下信息:

warn: Gicv3distributor::write(): setting ARE to 0 is not supported!, 而且此后没有更多信息,它似乎仍在运行。

我阅读了此邮件列表: https://www.mail-archive.com/gem5-users@gem5.org/msg18133.html 最终似乎没有使用多O3cpu来引导Linux系统。

因此,我是否应该使用AtomicSimplecpu进行引导,建立检查点,然后使用乱序内核加载检查点?引导配置是否需要与运行时配置相似?

解决方法

据我从您的描述中看到的,没有错误消息必然暗示GIC版本问题,默认情况下,我们有许多警告,并且这些警告似乎还可以。

但是,是的,由于https://gem5.atlassian.net/browse/GEM5-711中描述的不可缓存的访问问题,在ARM上使用高速缓存引导多个内核(O3要求)通常被破坏了,并且在引导和恢复O3之后采取原子检查点是一个麻烦。解决该票证注释中提到的问题的方法:https://gem5.atlassian.net/browse/GEM5-711?focusedCommentId=12001您可能不会遇到该问题,但是如果您这样做,则可以根据错误消息轻松查看这是否可能是特定问题,您是否拥有与该问题相同的断言失败?

您是否有任何不想要检查点和还原的原因,因为这样可以节省启动时间几分钟?是的,它受支持,它是检查点的主要用例之一:Which system characteristics such as number of cores of cache configurations can I change when restoring a checkpoint in gem5?

在报告此类问题时,请始终提供完整的CLI命令和输出以及gem5版本。并且在挂起的情况下,值得快速--debug ExecAll并找出最后执行的非奇怪指令是什么,因为这样可以极大地缩小可能出现的问题。