在 gem5 FS 模式下访问 pagemap
Access pagemap in gem5 FS mode
我正在尝试 运行 一个在 gem5 FS 模式下使用页面映射的应用程序。
但我无法在 gem5 中使用页面映射。它抛出以下错误 -
"assert(pagemap>=0) failed"
代码行是:
int pagemap = open("/proc/self/pagemap", O_RDONLY);
assert(pagemap >= 0);
此外,如果我尝试在 gem5 终端上使用 sudo 运行 我的应用程序,它会抛出错误-
sudo command not found
如何在 gem5 中使用 sudo ??
这些问题不是 gem5 特有的,而是图像 / Linux 特有的,并且可能发生在任何模拟器或真实硬件上。所以我建议你从等式中完全删除 gem5,下次问一个 Linux 或图像特定的问题,确切地说出你正在使用的图像,内核配置,并提供一个最小的 C 示例来重现问题:这个将大大提高您获得帮助的可能性。
我刚刚 open("/proc/self/pagemap", O_RDONLY)
成功完成了:this program and on this fs.py
setup on aarch64, see also these comments.
如果任何文件不存在 /proc/<pid>/pagemap
,请执行以下操作:
确保 procfs 安装在 /proc
上。这通常通过 fstab
类型的条目完成:
proc /proc proc defaults 0 0
但您的初始化脚本也需要使用 fstab
。
或者,您可以通过以下方式手动挂载 proc
:
mount -t proc proc proc/
您可能希望确保 /sys
和 /dev
也已挂载。
grep 内核以查看是否有一些配置控制文件创建。
在对内核一无所知的情况下,这些东西通常很容易找到。
如果我这样做:
git grep '"pagemap'
在 v4.18 上找到可能是创建点的 pagemap
字符串,这使我找到 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 模式下使用页面映射的应用程序。 但我无法在 gem5 中使用页面映射。它抛出以下错误 -
"assert(pagemap>=0) failed"
代码行是:
int pagemap = open("/proc/self/pagemap", O_RDONLY);
assert(pagemap >= 0);
此外,如果我尝试在 gem5 终端上使用 sudo 运行 我的应用程序,它会抛出错误-
sudo command not found
如何在 gem5 中使用 sudo ??
这些问题不是 gem5 特有的,而是图像 / Linux 特有的,并且可能发生在任何模拟器或真实硬件上。所以我建议你从等式中完全删除 gem5,下次问一个 Linux 或图像特定的问题,确切地说出你正在使用的图像,内核配置,并提供一个最小的 C 示例来重现问题:这个将大大提高您获得帮助的可能性。
我刚刚 open("/proc/self/pagemap", O_RDONLY)
成功完成了:this program and on this fs.py
setup on aarch64, see also these comments.
如果任何文件不存在 /proc/<pid>/pagemap
,请执行以下操作:
确保 procfs 安装在
/proc
上。这通常通过fstab
类型的条目完成:proc /proc proc defaults 0 0
但您的初始化脚本也需要使用
fstab
。或者,您可以通过以下方式手动挂载
proc
:mount -t proc proc proc/
您可能希望确保
/sys
和/dev
也已挂载。grep 内核以查看是否有一些配置控制文件创建。
在对内核一无所知的情况下,这些东西通常很容易找到。
如果我这样做:
git grep '"pagemap'
在 v4.18 上找到可能是创建点的
pagemap
字符串,这使我找到fs/proc/base.c
,其中包含:#ifdef CONFIG_PROC_PAGE_MONITOR REG("pagemap", S_IRUSR, proc_pagemap_operations), #endif
所以请确保
CONFIG_PROC_PAGE_MONITOR
已设置。
sudo
: 大多数嵌入式/模拟器图像都没有它,您只需直接以 root 身份登录,默认情况下可以在没有它的情况下执行任何操作。这可以通过提示中的常规 #
而不是 $
.