1

我想向 Linux 中的页面错误处理程序添加代码,特别是我有兴趣修改用于写入时复制的代码,即do_wp_page. 然而,困境是我想要测试我的应用程序的机器不在我的控制范围内。不能在该机器上修改操作系统或内核,因为它是由多个用户使用的共享机器。

现在我正在寻找一种方法来定义我自己的页面错误处理程序,它只用于我正在运行的应用程序。也许我可以使用内核模块(我认为我也必须要求一些管理权限)或者我可以在用户空间中定义它。请注意,我不希望它用于处理 SIGSEGV 信号,所以不要说使用mprotect. 我想处理写页面错误时的真实副本。我在这里有什么选择?

4

2 回答 2

2

我建议最简单的做法是使用虚拟机 - 在 VM 中进行内核级开发意味着错误不会给其他用户带来问题。

于 2012-04-23T13:12:56.597 回答
0

不幸的是 do_page_fault 和 do_wp_page 地址没有公开,因此任何实际执行您所说的操作的方式都可能不受欢迎。在 VM 上的共享机器上进行开发,然后使用专用机器来处理您的基准测试。无论如何,共享机器不会为您提供良好的读数,因为其他用户的工作负载无论如何都会干扰您的工作。

旁注:无论如何,您需要修改 Linux 上的 COW 有什么问题?

于 2012-04-23T13:17:40.953 回答