On Fri, Nov 28, 2003 at 05:08:23PM +0100, Eric.Lemoine@... wrote:
> > So what makes you sure it's oprofile rather than reality ?
>
> Because profiling the kernel with only CPU0 processing incoming packets
> leads to very few cache misses while doing exactly the same thing on
> CPU1 (or CPU2 or CPU3) leads to cache misses.
That's just repeating *what* is happening. Just because you get some
unusual results does *not* imply that the results are broken. After all,
is this not exactly what profiling is for ?
Of course, I can't possibly say what the cause might be (and I am /not/
discounting an oprofile/cpu problem), but we haven't seen any problems
like this before.
> L2_LINES_OUT:
>
> 1. NIC irq and web server process both attached to CPU0 (CPU0 is 0%
> idle while CPU1, CPU2, and CPU3 are 100% idle)
>
> 2. NIC irq and web server process both attached to CPU3 (CPU3 is 0%
> idle while CPU0, CPU1, and CPU2 are 100% idle)
>
> My conclusion: there's nothing wrong with CPU_CLK_UNHALTED but there
> definitely is something wrong for L2_LINES_OUT on CPU#0. But I have
>
> L2_LINES_OUT results for test #1:
>
> CPU: PIII, speed 549.474 MHz (estimated)
> Counted L2_LINES_OUT events (number of recovered lines from L2) with a
> samples % symbol name
> 57 35.4037 default_idle
> 18 11.1801 statm_pgd_range
> L2_LINES_OUT results for test #2:
>
> Counted L2_LINES_OUT events (number of recovered lines from L2) with a
> unit mask of 0x00 (No unit mask) count 5000
> samples % symbol name
> 92 5.7716 ip_queue_xmit
> 77 4.8306 tcp_sendmsg
But even so, how did you reach such a conclusion ? These values are very
low, and well into the level of statistical noise. Please remember that
OProfile is not an exact or accounting profiler.
Try running the tests for much longer, or reducing the count value
considerably. When the results are into the thousands/tens of thousands,
then it's more statistically reasonable.
regards
john
|