9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] arm breakpoints
@ 2013-01-06 15:02 Richard Miller
  2013-01-06 22:28 ` David du Colombier
  0 siblings, 1 reply; 5+ messages in thread
From: Richard Miller @ 2013-01-06 15:02 UTC (permalink / raw)
  To: 9fans

I had a surprise when I tried to debug a user process on the raspberry pi.
The first time it hit a breakpoint, the kernel panicked.  Oops.

It turns out than on armv6 (and armv7, I think) the breakpoint instruction
causes a Prefetch Abort exception, instead of Undefined Instruction as on
previous arm architectures.

I've updated the rpi kernel source to deal with this.  I wonder if
somebody with plan 9 on an armv7 system (omap or teg2) could check
whether the same panic occurs there too?




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] arm breakpoints
  2013-01-06 15:02 [9fans] arm breakpoints Richard Miller
@ 2013-01-06 22:28 ` David du Colombier
  2013-01-07 10:43   ` Richard Miller
  0 siblings, 1 reply; 5+ messages in thread
From: David du Colombier @ 2013-01-06 22:28 UTC (permalink / raw)
  To: 9fans

> I had a surprise when I tried to debug a user process on the
> raspberry pi. The first time it hit a breakpoint, the kernel
> panicked.  Oops.
>
> It turns out than on armv6 (and armv7, I think) the breakpoint
> instruction causes a Prefetch Abort exception, instead of Undefined
> Instruction as on previous arm architectures.
>
> I've updated the rpi kernel source to deal with this.  I wonder if
> somebody with plan 9 on an armv7 system (omap or teg2) could check
> whether the same panic occurs there too?

I just played a bit with acid on my IGEPv2 (omap) and Trim-Slice (teg2),
and I experienced the same problem with both.

cpu% acid /bin/ls
/bin/ls:arm plan 9 executable
/sys/lib/acid/port
/sys/lib/acid/arm
acid: new()

Then acid hangs forever.

When I interrupt it:

135: SVC/SWI Exception	_main	MOVW.W	R14,#-0x54(R13)
<stdin>:2: (error) msg: pid=135 startstop: interrupted
acid:

Acid on acid:

cpu% acid 209
/proc/209/text:arm plan 9 executable
/sys/lib/acid/port
/sys/lib/acid/arm
acid: stk()
pwrite()+0xc /sys/src/libc/9syscall/pwrite.s:6
write(buf=0x3dd4d,n=0x9)+0x1c /sys/src/libc/9sys/write.c:7
msg(msg=0x3dd4d,pid=0xd2)+0x58 /sys/src/cmd/acid/proc.c:231
startstop(args=0xaf300)+0x78 /sys/src/cmd/acid/builtin.c:238
ocall(res=0x1fffd368,n=0xaf360)+0x88 /sys/src/cmd/acid/expr.c:963
execute(n=0xaf360)+0x30c /sys/src/cmd/acid/exec.c:94
execute(n=0xaf3c0)+0x14c /sys/src/cmd/acid/exec.c:123
call(parameters=0x0,fn=0xae580,local=0x0,retexp=0x1fffe520,body=0xaf3c0)+0x2ac /sys/src/cmd/acid/exec.c:490
ocall(res=0x1fffe520,n=0xb75a0)+0xec /sys/src/cmd/acid/expr.c:970
execute(n=0xb75a0)+0x30c /sys/src/cmd/acid/exec.c:94
execute(n=0xb7600)+0x14c /sys/src/cmd/acid/exec.c:123
execute(n=0xb77e0)+0x140 /sys/src/cmd/acid/exec.c:122
call(parameters=0x0,fn=0xb6e90,local=0x0,retexp=0x1ffff76c,body=0xb77e0)+0x2ac /sys/src/cmd/acid/exec.c:490
ocall(res=0x1ffff76c,n=0xf94a8)+0xec /sys/src/cmd/acid/expr.c:970
execute(n=0xf94a8)+0x30c /sys/src/cmd/acid/exec.c:94
yyparse()+0xefc /sys/src/cmd/acid/dbg.y:55
main(argv=0x1fffffb0,argc=0x1)+0x2ac /sys/src/cmd/acid/main.c:150
_main+0x28 /sys/src/libc/arm/main9.s:19
acid:

On the Trim-Slice, the kernel write the following
message in the console:

trap: cpu1: i-fault va 0x1024 != ifar 0x1020

--
David du Colombier



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] arm breakpoints
  2013-01-06 22:28 ` David du Colombier
@ 2013-01-07 10:43   ` Richard Miller
  2013-01-07 19:05     ` David du Colombier
  0 siblings, 1 reply; 5+ messages in thread
From: Richard Miller @ 2013-01-07 10:43 UTC (permalink / raw)
  To: 9fans

> I just played a bit with acid on my IGEPv2 (omap) and Trim-Slice (teg2),
> and I experienced the same problem with both.

Thanks for trying that.  In /n/miller/contrib/bkpt.tar there are some
patched omap and teg2 files which I hope will work better.  Would you
like to try them before I submit a patch?




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] arm breakpoints
  2013-01-07 10:43   ` Richard Miller
@ 2013-01-07 19:05     ` David du Colombier
  2013-01-08 11:04       ` Richard Miller
  0 siblings, 1 reply; 5+ messages in thread
From: David du Colombier @ 2013-01-07 19:05 UTC (permalink / raw)
  To: 9fans

> > I just played a bit with acid on my IGEPv2 (omap) and Trim-Slice
> > (teg2), and I experienced the same problem with both.
>
> Thanks for trying that.  In /n/miller/contrib/bkpt.tar there are some
> patched omap and teg2 files which I hope will work better.  Would you
> like to try them before I submit a patch?

Your fix solves the problem on both the IGEPv2 and Trim-Slice.
Thank you!

--
David du Colombier



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] arm breakpoints
  2013-01-07 19:05     ` David du Colombier
@ 2013-01-08 11:04       ` Richard Miller
  0 siblings, 0 replies; 5+ messages in thread
From: Richard Miller @ 2013-01-08 11:04 UTC (permalink / raw)
  To: 9fans

> Your fix solves the problem on both the IGEPv2 and Trim-Slice.

Thanks for testing it, I've offered a patch now (armv7-bkpt).




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-01-08 11:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-06 15:02 [9fans] arm breakpoints Richard Miller
2013-01-06 22:28 ` David du Colombier
2013-01-07 10:43   ` Richard Miller
2013-01-07 19:05     ` David du Colombier
2013-01-08 11:04       ` Richard Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).