将页面标记为只读(因为kexec段已损坏)

时间:2016-10-18 08:54:32

标签: linux linux-kernel kernel

我们正面临使用kexec命令加载的段的奇怪损坏。

我们遵循的步骤是

  • 使用“kexec -l”命令加载新内核然后

  • 我们正在对设备进行多次专有关闭,最后我们正在执行

  • “kexec -e”跳转到新内核。

在“kexec -l”和“kexec -e”之间,我们的专有代码正在破坏已加载的段,因此我们无法成功执行新内核(系统挂起甚至没有早期的调试从新内核)。但是如果我们在“kexec -l”之后立即执行“kexec -e”,新内核就会完美地执行。

为了找到谁是罪魁祸首,我想将作为段加载的一部分分配的页面标记为只读(在复制内容之后),这样如果有人试图写入它会抛出异常而我们可以很容易地抓住它。为此,我想在复制所需内容后将alloc_pages(GFP_HIGHUSER,0)返回的页面标记为只读。

你能告诉我怎么做吗?

谢谢,

塞特希

0 个答案:

没有答案