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.