本文介绍了如何使用具有8个以上内核的fs.py运行gem5 arm aarch64完整系统仿真?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我尝试使用多个--num-cpus=8个内核,例如16、32或64,则终端保持空白.

If I try to use more than --num-cpus=8 cores, e.g. 16, 32 or 64, the terminal just stays blank.

使用gem5在提交2a9573f5942b5416fb0570cf5cb6cdecba733392和Linux内核4.16上进行了测试.

Tested with gem5 at commit 2a9573f5942b5416fb0570cf5cb6cdecba733392 and Linux kernel 4.16.

相关主题: https://www.mail- archive.com/[email protected]/msg15469.html

推荐答案

如果我在Ciro的答案中添加更多内容,则由于这行代码.如果不启用gem5ExtensionsEnabled,它将不会使用接收到的中断号更新highest_int,因此接收到的中断将不会被发布到指定的cpu上以调用处理程序.也就是说,没有跳转到中断处理程序.另外,即使打开gem5ExtensionsEnabled,我认为它也将支持多达4个内核,因为INT_BITS_MAXitLines的默认值分别为32和128(请参见);它检查每个内核跨越4个内核的32条中断线.例如,假设一个系统具有16个内核,而cpu 5执行该循环.同样,假设另一个内核(比如说内核11)已经有一个优先级比此更高的中断.然后,循环将忽略内核11的另一个中断,因为循环索引x最多可以增长到3.

If I add more to Ciro's answer, the current GICv2 model in gem5 supports single core by default because of this line of code. Without enabling gem5ExtensionsEnabled, it won't update the highest_int with the receiving interrupt number, and as a result the received interrupt won't get posted to a specified cpu to invoke a handler. That is, there is no jump to interrupt handler. In addition, even when we turn on gem5ExtensionsEnabled, I think that it will support up to 4 cores because the default values of INT_BITS_MAX and itLines are 32 and 128, respectively (see this); it checks 32 interrupt lines per core across 4 cores. For example, imagine that a system features 16 cores and cpu 5 executes the loop. Also, suppose that the other core (say core 11) already has an interrupt with higher priority than this. Then, the loop will ignore the other interrupt from core 11 because the loop index x can grow at most to 3.

要打开gem5ExtensionsEnabled,您可以按照Ciro的说明将选项--param='system.realview.gic.gem5_extensions=True'传递给命令.但是,请注意,该参数用于在haveGem5Extensions变量. rel ="nofollow noreferrer">此处,未设置gem5ExtensionsEnabled,仅当固件代码以GICD_TYPER偏移量将一些数据(0x200)写入GIC分配器寄存器时启用(请参见).

To turn on gem5ExtensionsEnabled, you can pass an option --param='system.realview.gic.gem5_extensions=True' to your command as Ciro stated. However, note that the parameter is used to set haveGem5Extensions variable at here, not setting gem5ExtensionsEnabled, which is enabled only when a firmware code writes some data (0x200) to GIC distributor register at GICD_TYPER offset (see this).

这篇关于如何使用具有8个以上内核的fs.py运行gem5 arm aarch64完整系统仿真?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-25 06:38