gem5 - 如何在 gem5 中使用 TARMAC 示踪剂?
问题描述
我注意到 gem5 在以下位置有一个 TARMAC 跟踪器:https ://github.com/gem5/gem5/blob/05c4c2b566ce351ab217b2bd7035562aa7a76570/src/arch/arm/tracers/TarmacTrace.py
这似乎也是 FastModels 使用的格式:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0532c/ CHDHFCEE.html并且可能使比较执行更容易。
如何在 gem5 中启用该跟踪器,例如在fs.py
?
解决方案
从 9048ef0ffbf21bedb803b785fb68f83e95c04db8 开始,它似乎没有在任何配置中公开,但您可以通过一个小的 hack 补丁轻松启用它,例如在 fs.py 上:
diff --git a/configs/example/fs.py b/configs/example/fs.py
index 4d2165884..e3b74ebeb 100644
--- a/configs/example/fs.py
+++ b/configs/example/fs.py
@@ -374,5 +374,7 @@ if buildEnv['TARGET_ISA'] == "arm" and not options.bare_metal \
sys = getattr(root, sysname)
sys.dtb_filename = create_dtb_for_system(sys, '%s.dtb' % sysname)
+for cpu in test_sys.cpu:
+ cpu.tracer = TarmacTracer()
Simulation.setWorkCountOptions(test_sys, options)
Simulation.run(options, root, test_sys, FutureClass)
然后,如果您运行gem5.opt --debug-file
,调试文件m5out/trace.txt
将以 TARMAC 格式保存,而不是由--debug-flags
.
推荐阅读
- javascript - Vue3 使用了 socket.io-client 3.0:无法读取未定义的属性“sid”
- c# - 如何将所有租户和公司的所有活动库存检索到 Acumatica 中的一个自定义屏幕选择器?
- android - 仅在特定片段中滚动时,CoordinatorLayout 隐藏工具栏
- php - 在数组中搜索键并输出值
- python - Discord bot 使语音通道中的每个人都静音不起作用(Python)
- php - Ajax 成功响应不显示来自 PHP 代码的回显消息
- reactjs - 按下按钮时,setState 仅在第二次按下时起作用
- python - Python 异常是谁的责任?
- python - 是否可以在 Python 中使用“或”来初始化具有 2 个字符串的变量?
- spring - Keycloak/OpenID:代表客户端应用程序请求用户信息