On 11/11/06, Jan Kiszka <[EMAIL PROTECTED]> wrote:
Do you have a tracer-log for i386 for reference? So I can do some compare.
Yes, by using the frame-pointer register (FP) it is possible to get parent's return address. The reason is that __builtin_return_address(1) is not implemented for Blackfin gcc. I have submitted feature request for the toolchain developer, hoping they could help.
Thanks for pointing out.
-Yi
Li Yi (Adam) wrote:
> Hi Jan and Philippe,
This must be
http://www.rts.uni-hannover.de/xenomai/lxr/source/ksrc/nucleus/pod.c#L2337
saying "root thread is about the be scheduled away". But then I'm
missing code here that one would normally see on x86:
http://www.rts.uni-hannover.de/xenomai/lxr/source/ksrc/nucleus/pod.c#L2442
Likely inlined on bfin, but this *must* make some noise:
http://www.rts.uni-hannover.de/xenomai/lxr/source/ksrc/nucleus/pod.c#L2453
Instead we enter the pending timer interrupt. This currently makes no
sense to me, rather make me think that something is skewed. Maybe only
the tracer, maybe more...
Do you have a tracer-log for i386 for reference? So I can do some compare.
> :| # end 0x80000000 -50+ 2.278 ___sched_text_start+0x5ca (__start+0xfffff000)
> :| # func -48 0.922 ___ipipe_grab_irq+0x22 (__common_int_entry+0x72)
> :| # begin 0x00000006 -47+ 1.820 ___ipipe_grab_irq+0x34 (__start+0xfffff000)
> :| # func -45+ 1.530 ___ipipe_handle_irq+0x1e (___ipipe_grab_irq+0x3c)
> :| # func -43+ 1.168 _rthal_timer_ack+0x8 (___ipipe_handle_irq+0x178)
> :| # func -42+ 1.102 ___ipipe_dispatch_wired+0x14 (___ipipe_handle_irq+0x190)
> :| # end 0x00000006 -41+ 2.010 ___ipipe_grab_irq+0x42 (__start+0xfffff000)
> : # func -39+ 1.090 _ipipe_unstall_pipeline_head+0x8 (_xnshadow_harden+0xce)
> :| # begin 0x80000001 -38+ 2.308 _ipipe_unstall_pipeline_head+0x18 (__start+0xfffff000)
That's another weirdness, but now very likely of the tracer: both
tracepoints should contain the same parent entry, but the second one is
just nonsense. And there are such kind of parents all over the place -
hmm, actually any explicit trace point shows this problem. Is there no
way on bfin to get the caller from everywhere in a function? I guess
there is, likely a register, right?
Yes, by using the frame-pointer register (FP) it is possible to get parent's return address. The reason is that __builtin_return_address(1) is not implemented for Blackfin gcc. I have submitted feature request for the toolchain developer, hoping they could help.
Thanks for pointing out.
-Yi
_______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
