Subject: Re: ARM7 stat calls again
To: Reinoud Zandijk <reinoud@netbsd.org>
From: Richard Earnshaw <rearnsha@buzzard.freeserve.co.uk>
List: port-arm
Date: 09/27/2001 20:34:49
> Hiya folks and freinds,
> 
> have got a new ARM7 profiling stats waiting for you :) ... its this time 
> twice a `find /' and a `make configure' for pkgsrc's gmake.
> 
> Attached is the output ... hope its complete now ... (zero entries left 
> out)

Hmm, unfortunately, there are too many symbols in the image this time :-(

Let me guess, you've built an ELF kernel.

Unfortunately, ELF uses `.' as the prefix for a temporary symbol, whereas a.out uses `L'.  For GCC compiled files this isn't a problem, but for the assembly files the local labels there always start with `L', so aren't removed by the elf version of strip.  So we are now left with a number of `spontaneous' entries which should really be accounted to other functions.  In particular, memset is being deprived of most of its cost (and so the parent's don't see the memset cost fully either).

However, even from what you've posted we can glean somthing (taking the other trace you posted as well) I suspect that memset is being used extensively in an interrupt context, in particular:

                0.03    0.00   32172/186298      wsemul_vt100_scrollup [185]
                0.03    0.00   32173/186298      vv_eraserows [389]
[360]    0.0    0.20    0.00  186298         memset [360]

which together account for >30% of the memset calls

What's the spl level during these calls; if it isn't zero, is there any chance that they can be moved out of the interrupt context?

R.