访问gem5 FS模式中的页面映射
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了访问gem5 FS模式中的页面映射相关的知识,希望对你有一定的参考价值。
我正在尝试运行一个在gem5 FS模式下使用pagemap的应用程序。但我无法在gem5中使用pagemap。它抛出错误 -
“assert(pagemap> = 0)失败”
代码行是:
int pagemap = open("/proc/self/pagemap", O_RDONLY);
assert(pagemap >= 0);
此外,如果我尝试使用sudo在gem5终端上运行我的应用程序,它会抛出错误 -
找不到sudo命令
我如何在gem5中使用sudo?
答案
这些问题不是特定于gem5,而是特定于图像/ Linux,并且可能发生在任何模拟器或真实硬件上。因此,我建议您完全从等式中删除gem5,并在下次询问Linux或图像特定问题,准确说出您正在使用的图像,内核配置,并提供再现问题的最小C示例:这将极大地改善你得到帮助的概率。
我刚刚成功地完成了open("/proc/self/pagemap", O_RDONLY)
:aaz64上的this program和on this fs.py
setup,另见these comments。
如果任何文件不存在/proc/<pid>/pagemap
,请执行以下操作:
- 确保procfs安装在
/proc
上。这通常使用以下类型的fstab
条目完成:proc /proc proc defaults 0 0
但是你的init脚本也需要使用fstab
。 或者,您可以手动安装proc
:mount -t proc proc proc/
你可能想确保安装/sys
和/dev
。 - grep内核,看看是否有控制文件创建的配置。
在不了解内核的情况下,通常很容易找到这些类型的东西。
如果我做:
git grep '"pagemap'
为了找到pagemap
字符串,这可能是创作点,在v4.18这导致我fs/proc/base.c
,其中包含:#ifdef CONFIG_PROC_PAGE_MONITOR REG("pagemap", S_IRUSR, proc_pagemap_operations), #endif
所以确保设置CONFIG_PROC_PAGE_MONITOR
。
sudo
:大多数嵌入式/模拟器图像没有它,你只需直接以root用户身份登录,默认情况下可以做任何事情。这可以通过传统的#
在提示中看到而不是$
。
以上是关于访问gem5 FS模式中的页面映射的主要内容,如果未能解决你的问题,请参考以下文章