1

在文件http://lxr.linux.no/#linux+v3.9.4/arch/x86/mm/fault.c#L29中,有一些关于页面错误错误代码的信息:

Page fault error code bits:
bit 0 ==    0: no page found       1: protection fault
bit 1 ==    0: read access         1: write access
bit 2 ==    0: kernel-mode access  1: user-mode access
bit 3 ==                           1: use of reserved bit detected
bit 4 ==                           1: fault was an instruction fetch

在“位 3”“1:检测到保留位的使用”的情况下,哪些情况可以使内核将此位设置为 1?有没有关于它的文件?

谢谢

4

1 回答 1

2

数据结构中的保留位是那些具有某些特殊含义并在内部使用的位。

如果您的代码修改了与分页相关的数据结构中的任何保留位,则将设置您示例中错误代码的第 3位。例如,在 x86 位 21 到 12 上的 4 Mb 页面目录条目保留供系统使用,覆盖它们是错误的。

于 2013-06-10T08:27:08.147 回答