From Linux PARISC Wiki
Jump to: navigation, search

Please read this howto for information on reporting PA-RISC kernel problems.

A good example is better than a long explanation, so here it is:

Following is an explanation of each field of a userspace do_page_fault() dump, thanks to KyleMcMartin:

do_page_fault() pid=21916 command='gij-4.1.bin' type=15 address=0x00000004

Self explainatory (address is the faulting address). Type 15 is a dtlb fault (typical on load from null pointer). Type 6 is itlb (typical on store to null pointer).

PSW: 00000000000001001111111100001111 Not tainted
r00-03  000000ff0004ff0f 0000000042cdded8 0000000041655863 0000000042dc4030
r04-07  0000000042c5ced8 0000000042dc4030 0000000042e16600 0000000042e0e198
r08-11  00000000402fe690 000000004014da80 00000000402f5680 0000000040630460
r12-15  0000000042e165a0 0000000040391000 00000000c0381308 000000004036cf88
r16-19  000000004036d308 0000000000000000 0000000000000000 0000000042c5ced8
r20-23  0000000000000043 00000000400f93b0 0000000041655834 0000000000000800
r24-27  0000000000000000 0000000000000001 0000000042d93fc4 0000000000011a74
r28-31  0000000000000000 0000000000000800 00000000c0382180 0000000041bff5bb 

General regs

sr00-03  0000000000892800 0000000000892800 0000000000000000 0000000000892800
sr04-07  0000000000892800 0000000000892800 0000000000892800 0000000000892800 

Space regs (this is a user space)

FPSR: 00001000000010001000000000000000
FPER1: 00000000
fr00-03  0808800000000000 0000000000000000 0000000000000000 0000000000000000
fr04-07  4024000000000000 3fe6e2ffbde423e5 3f400000d2400000 3ff0000000000000
fr08-11  0000000000000028 00000000f000024c 0000000040541380 0000000000000802
fr12-15  42c5ced80000000b 0000000000000001 42e24000404a01d8 42c5ced8455c4108
fr16-19  fffffffffffff000 0000000000000000 0000000000000802 00000000405a1000
fr20-23  00000000455c4398 0000000040541380 42d4ce0013b13bb5 000002bb00000000
fr24-27  0000000600000000 00000000000225e8 5eb15c1bc135d057 14bb70f5e181fefc
fr28-31  5eb15c1b9efa484d 7c39793785daed7c 5eb15c1b455c4398 ec0fba0d40541380 

FPRs. Note that the value of fr0 as printed in the line starting with fr00-03 is bogus and should be ignored. fr0 actual content is displayed in FPSR and FPER1.

IASQ: 0000000000892800 0000000000892800

Space queues (front & back)

IAOQ: 000000004165586f 0000000041655873

The faulting address (and the next address in the queue) with the prot bits.

IIR: 0f881083    ISR: 0000000000892800  IOR: 0000000000000004

IIR is the interrupting instruction register, in this case, it's

0:   0f 88 10 83     ldw 4(ret0),r3

So, can plainly see it's a null ptr deref.

CPU:        0   CR30: 0000000114bc0000 CR31: 0000000040500000
ORIG_R28: 0000000000000002
IAOQ[0]: 0x4165586c
IAOQ[1]: 0x41655870

Actual faulting address (with the low-bits masked)

RP(r2): 0x41655860

Return pointer.

Personal tools