Subject: Re: callgraph ARM7
To: Reinoud Zandijk <reinoud@netbsd.org>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm
Date: 09/25/2001 13:25:13
> Hiya All,
> 
> sorry for this HUGE mail (well the attachments) but there were questions 
> about the actual processor usage on ARM7 systems since those are a bit 
> easier to profile ... i.e. are slow ;)
> 
> I ran a profiled kernel (RPC_WSCONS) and only did a `find /' ... not very
> interesting but a start... since this machine has no real good NFS due to a
> broken network card and a braindead ppp interface i had to keep it simple
> this time... hope it gives some information at least ...
> 
> Cheers,
> Reinoud
> 
> 
Hmm, so the first point is that it looks as though you are over-stripping 
your kernel, so some of the arcs don't make sense (static function names 
are missing and the global that precedes that is being used instead. eg:

                5.32    0.00   16082/39943       vidcvideo_cnattach [30]
[20]    10.7   13.21    0.00   39943         memset [20]

I think the caller should be set_cursor() -- it doesn't make sense for 
vidcvideo_cnattach to be calling memset 16000 times!

Try changing your kernel link flags to -X (it's probably -x at present).


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.  Try building a kernel where it is just a 
normal ENTRY function.