内核Oops页面错误,页面表损坏

时间:2013-06-07 10:24:29

标签: linux virtual-memory

最近我遇到了一个错误“地址ffff88007eccb080损坏的页面表”,其中包含Oops:0009 [#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

错误是由于保护错误和使用检测到的保留位造成的。这些来源是否真的导致地址ffff88007eccb080损坏的页面表?

我是否可以确定此虚拟地址映射到哪个进程并导致该地址损坏?

谢谢

1 个答案:

答案 0 :(得分:0)

来自https://bugzilla.redhat.com/show_bug.cgi?id=859188#c43

  

错误代码具有“损坏的页表”消息   PF_RSVD位置1。

因此,use of reserved bit detected位会导致Oops。

地址ffff88007eccb080属于内核空间(在所有进程中共享),而不属于任何用户进程的专用虚拟地址空间。