port-arm: Re: callgraph ARM7

Subject: Re: callgraph ARM7
To: Ben Harris <bjh21@netbsd.org>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm
Date: 09/25/2001 13:45:59
> On 2001年9月25日, Richard Earnshaw wrote:
> 
> > Secondly, you need to find out where all those calls to SetCPSR are coming
> > from. SetCPSR is currently defined as ENTRY_NP, though I'm not entirely
> > sure that this is required.
> 
> It is required, because it's used by mcount to protect its internal data
> structures. See the end of <machine/profile.h>.
> 
> Note that apparently spending a lot of time in SetCPSR may not be
> significant. Anything which blocks all interrupts will get any statclock
> interrupt queued up and delivered when interrupts are re-enabled, which is
> always in SetCPSR. You can probably make this better by having real
> statclock interrupts like arm26 does, and perhaps by arranging that
> SetCPSR restore the I flag at the same time as it returns (like
> int_restore does on arm26).
> 
> > Try building a kernel where it is just a normal ENTRY function.
> 
> This should crash as soon as a profiled function is called.
If all the calls (well most) are comming from within mcount, then you can 
probably ignore SetCPSR as a source of poor performance. I hadn't 
realized that mcount called it, though it sort of makes sense. It's still 
a little strange that it is so high up the profile graph, however, given 
that it is such a short function.
R.

AltStyle によって変換されたページ (->オリジナル) /