You should also be able to modify the kernel to prove/disprove that wr10 is not being preserved during a task switch coincident with this fault.<br>Rex<br><br><div class="gmail_quote">On Wed, Jun 23, 2010 at 10:41 AM, Enrico Scholz <span dir="ltr"><<a href="mailto:enrico.scholz@sigma-chemnitz.de">enrico.scholz@sigma-chemnitz.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">Enrico Scholz <<a href="mailto:enrico.scholz@sigma-chemnitz.de">enrico.scholz@sigma-chemnitz.de</a>> writes:<br>
<br>
> [ 2280.392473] sed: unhandled page fault (11) at 0x40026200, code 0x017<br>
> [ 2280.392500] pgd = c7bf0000<br>
> [ 2280.395191] [40026200] *pgd=87b57031, *pte=00000000, *ppte=00000000<br>
> [ 2280.401529]<br>
> [ 2280.408893] Pid: 8831, comm: sed<br>
> [ 2280.418649] CPU: 0 Not tainted (2.6.31.13 #1)<br>
> [ 2280.424497] PC is at 0x40016a84<br>
> [ 2280.427610] LR is at 0x40014b0c<br>
> [ 2280.430724] pc : [<40016a84>] lr : [<40014b0c>] psr: 20000010<br>
> [ 2280.430733] sp : befff8f8 ip : befff910 fp : befff99c<br>
> [ 2280.460747] r10: 00000000 r9 : 6474e552 r8 : 00000004<br>
> [ 2280.466537] r7 : 00000000 r6 : 00000012 r5 : 00000201 r4 : 40026202<br>
> [ 2280.473452] r3 : befff8f8 r2 : 00000009 r1 : 40026200 r0 : 40026202<br>
> [ 2280.479937] Flags: nzCv IRQs on FIQs on Mode USER_32 ISA ARM Segment user<br>
> [ 2280.487354] Control: 0400397f Table: 87bf0018 DAC: 00000015<br>
<br>
</div>I modified kernel to give out iwmmxt regs:<br>
<br>
wr0: 0000000000000009 wr1: 0000000000000000<br>
wr2: 0000000000000000 wr3: 0000000000000000<br>
wr4: 0000000000000012 wr5: 0000000000000000<br>
wr6: 0000000000000000 wr7: 0000000000000000<br>
wr8: 0000000000000000 wr9: 0000000000000000<br>
wr10: 0000000000000000 wr11: 0000000000000000<br>
wr12: 0000000000000000 wr13: 0000000000000000<br>
wr14: 0000000000000000 wr15: 0000000000000000<br>
wcid: 69052010 wcon: 00000003 wcssf: 00000000 wcasf: 00000000<br>
wcgr0: 00000201 wcgr1: 00000104 wcgr2: 00000000 wcgr3: 00000000<br>
<br>
<br>
--> wr10 which should contain 0x1 is 0; the removal of the n'th bit is<br>
a noop hence and loop won't terminate.<br>
<br>
wr10 is not modified within the loop<br>
<div class="im"><br>
<br>
> 14ab4: e3a00001 mov r0, #1 ; 0x1<br>
> 14ab8: e3a01000 mov r1, #0 ; 0x0<br>
</div>> ...<br>
<div class="im">> 14ac8: ec41000a tmcrr wr10, r0, r1<br>
</div>> ...<br>
> ...<br>
<div class="im">> 14b14: eeda5149 wslldg wr5, wr10, wcgr1<br>
</div>> ...<br>
<div class="im">> 14b20: ec510005 tmrrc r0, r1, wr5<br>
</div><div class="im">> 14b24: e0266000 eor r6, r6, r0<br>
</div><div class="im">> 14b28: e0277001 eor r7, r7, r1<br>
<br>
<br>
<br>
</div><font color="#888888">Enrico<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
linux-arm mailing list<br>
<a href="mailto:linux-arm@lists.infradead.org">linux-arm@lists.infradead.org</a><br>
<a href="http://lists.infradead.org/mailman/listinfo/linux-arm" target="_blank">http://lists.infradead.org/mailman/listinfo/linux-arm</a><br>
</div></div></blockquote></div><br>