我想在Linux中向页面错误处理程序添加代码,特别是我有兴趣修改用于写入时复制的那个,即do_wp_page
。然而,困境是我想测试我的应用程序的机器不在我的控制之下。无法在该计算机上修改操作系统或内核,因为它是多个用户使用的共享计算机。
现在我正在寻找一种可以定义自己的页面错误处理程序的方法,它只会用于我正在运行的应用程序。也许我可以使用一个内核模块(我想要考虑一些管理权限)或者我可以在用户空间中定义它。请注意,我不希望它处理SIGSEGV信号,所以不要说使用mprotect
。我想处理写页面错误的真实副本。我有什么选择?
答案 0 :(得分:2)
我建议最简单的方法是使用虚拟机 - 在VM中进行内核级开发意味着错误不会给其他用户带来问题。
答案 1 :(得分:0)
不幸的是,do_page_fault和do_wp_page地址没有公开,所以任何实际做你所说的方式都可能不受欢迎。在VM上的共享计算机上进行开发,然后使用专用计算机来处理基准测试。无论如何,共享计算机无法为您提供良好的读数,因为无论如何其他用户的工作负载都会干扰您的工作。
旁注:无论如何,你需要修改Linux上的COW有什么问题?