访问gem5 FS模式中的页面映射

问题描述 投票:1回答:1

我正在尝试运行一个在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
1个回答
0
投票

这些问题不是特定于gem5,而是特定于图像/ Linux,并且可能发生在任何模拟器或真实硬件上。因此,我建议您完全从等式中删除gem5,并在下次询问Linux或图像特定问题,准确说出您正在使用的图像,内核配置,并提供再现问题的最小C示例:这将极大地改善你得到帮助的概率。

我刚刚成功地完成了open("/proc/self/pagemap", O_RDONLY):aaz64上的this programon 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用户身份登录,默认情况下可以做任何事情。这可以通过传统的#在提示中看到而不是$

© www.soinside.com 2019 - 2024. All rights reserved.