ARM 的内核 Oops 页面错误错误代码

shu*_*nty 5 linux arm linux-kernel fault

Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息。 Oops: 17 [#1] PREEMPT SMP 在这种情况下,17 给出了信息。在 x86 中它代表 -

  • 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

但我无法在arm中找到任何信息。

谢谢顺蒂

aus*_*len 2

上面打印的位描述是页错误描述,而不是 Oops 错误。

有关查找 Linux 崩溃分析的更多信息,请参阅 Linux 的oops-tracing 。

以下是Oops: 17 [#1] PREEMPT SMP arch/arm/kernel/traps.c的方式:

    #define S_PREEMPT " PREEMPT"
    ...
    #define S_SMP " SMP"
    ...
    printk(KERN_EMERG "Internal error: %s: %x [#%d]" S_PREEMPT S_SMP S_ISA "\n", str, err, ++die_counter);
Run Code Online (Sandbox Code Playgroud)

页面错误并不需要导致内核崩溃,而且并非所有内核崩溃都是页面错误。所以很有可能Oops: 17根本与页面错误无关。(作为奖励,我的疯狂猜测是它与日程安排有关/对我来说听起来很熟悉。)