如何在Linux内核中人为导致页面错误?

时间:2015-04-28 02:28:54

标签: linux linux-kernel x86

我对Linux内核很陌生。我想在每次获取指定页面'P'时使内核出错。一个简单的概念是清除表示页表项(PTE)中页面'P'的存在的位。

任何人都可以提供有关如何在x86中实现此功能的更多详细信息吗?另请指出我需要在源代码中进行修改的地方,如果可能的话。

背景

我必须调用我的自定义页面处理程序,该处理程序仅适用于处理用户应用程序中的一组页面。在给定应用程序中执行某些序言后,必须启用此自定义页面处理程序。出于测试目的,我需要在执行序言后引发错误。

目前内核在我的序言执行之前加载了所有东西,所以我需要人为地导致错误来测试我的处理程序。

1 个答案:

答案 0 :(得分:0)

自从我从Minix迁移到Linux以来,我没有使用交换代码,但交换算法可以做两件事。当内存不足时,它会将页面从内存移动到磁盘,当需要页面时,它会将其复制回来(可能在将另一页移动到磁盘后)。

我会使用您正在编写的完全换出功能来清除页面当前标志。我可能还会使用字符设备将命令发送到测试代码以强制交换。