4

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

しかし、腕の中で情報を見つけることができません。

ありがとうシャンティ

4

2 に答える 2

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);

ページ フォールトによってカーネルがクラッシュする必要はありません。また、すべてのカーネル クラッシュがページ フォールトであるとは限りません。Oops: 17そのため、ページ フォールトとはまったく関係がない可能性が高くなります。(そして、おまけとして、私のワイルドな推測では、それはスケジューリングに関するものです/私にはなじみがあるように聞こえます.)

于 2012-11-09T07:09:02.607 に答える