Kernel Oops page fault error codes for ARM

shunty picture shunty · Nov 9, 2012 · Viewed 23.6k times · Source

What does error code after Oops give information about the panic in arm ex. Oops: 17 [#1] PREEMPT SMP what 17 give information in this case. In x86 it represents -

  • 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

But i am not able to find any information in arm.

Thanks Shunty

Answer

auselen picture auselen · Nov 9, 2012

What you printed above as description of bits is page fault descriptions, not Oops faults.

See Linux's oops-tracing for more information on looking for Linux crash analysis.

Below is how your 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);

Page faults doesn't need to crash the kernel, as well as not all kernel crashes are page faults. So there is a high chance Oops: 17 is not related to page faults at all. (and as a bonus my wild guess is it is about scheduling / just sounds familiar to me.)