脚本宝典收集整理的这篇文章主要介绍了kernel exception时打印出的ESR相关信息,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<1>[ 7766.006249] Unhandled fault at 0xffffff800188d408 <1>[ 7766.006256] Mem abort info: <1>[ 7766.006259] ESR = 0x86000003 <1>[ 7766.006264] Exception class = IABT (current EL), IL = 32 bits <1>[ 7766.006268] SET = 0, FnV = 0 <1>[ 7766.006271] EA = 0, S1PTW = 0 <1>[ 7766.006277] swapper pgtable: 4k pages, 39-bit VAs, pgdp = 00000000352033d5 <1>[ 7766.006281] [ffffff800188d408] pgd=000000009d7fe003, pud=000000009d7fe003, pmd=00000000625c6003, pte=0040080063544793 <0>[ 7766.006294] Internal error: level 3 address size fault: 86000003 [#1] PREEMPT SMP
上述kernel exception时打印出的ESR(Exception Syndrome Register (EL1))值为0x86000003,看下ESR_EL1 register bit assignment:
ESR_EL1是一个64bit register,先要看EC(exception class) field,这个field是在这个register的bit[31:26],占6bit
此实例中EC值是0x21(0b100001),查看EC值解释表,可以得知0b100001是instruction abort,然后查看instruction abort对应的ISS
EC | Meaning | ISS | Applies when |
---|---|---|---|
0b000000 |
Unknown reason. |
ISS encoding for exceptions with an unknown reason | |
0b000001 |
Trapped WF* instruction execution. Conditional WF* instructions that fail their condition code check do not cause an exception. |
ISS encoding for an exception from a WF* instruction |
0b100001 |
Instruction Abort taken without a change in Exception level. Used for MMU faults generated by instruction accesses and synchronous External aborts, including synchronous parity or ECC errors. Not used for debug-related exceptions. |
ISS encoding for an exception from an Instruction Abort |
主要看IFSC bit field,这个bit field值的含义说明在如下的table里,在本实例中,IFSC bit field的值是3,所以是“Address size fault, level 3”
ISS encoding for an exception from an Instruction Abort
24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RES0 | SET | FnV | EA | RES0 | S1PTW | RES0 | IFSC |
Instruction Fault Status Code.
IFSC | Meaning | Applies when |
---|---|---|
0b000000 |
Address size fault, level 0 of translation or translation table base register. |
|
0b000001 |
Address size fault, level 1. |
|
0b000010 |
Address size fault, level 2. |
|
0b000011 |
Address size fault, level 3. |
|
0b000100 |
Translation fault, level 0. |
|
0b000101 |
Translation fault, level 1. |
以上是脚本宝典为你收集整理的kernel exception时打印出的ESR相关信息全部内容,希望文章能够帮你解决kernel exception时打印出的ESR相关信息所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。