82xx performance
Milton Miller
miltonm at bga.com
Wed Jul 16 01:57:22 EST 2008
On Tue Jul 15 02:34:03 EST 2008, Rune Togersen wrote:
> We are looking into switching kernels from 2.6.18 (ppc) to 2.6.25
> (powerpc).
> I have been trying to run some benchmarks to see how the new kernel
> compares to the old one.
>
> So far it is performing worse.
>
> One test I ran was just compiling a 2.6.18 kernel on the system.
> The .25 performed 5 to 7 % slower:
>
> 2.6.18, make vmlinux
> real 74m1.328s
> user 68m48.196s
> sys 4m35.961s
>
> 2.6.25, make vmlinux
> real 79m13.361s
> user 72m41.318s
> sys 5m46.744s
>
> I also ran lmbench3. (slightly outdated, but still works)
> Most (if not all) results are worse on .25, especially context
> switching.
>
> Is this expected behaviour or is there anything I need to look at in my
> config?
> (I'll send config if anybody is interested)
>
>
> L M B E N C H 3 . 0 S U M M A R Y
> ------------------------------------
> (Alpha software, do not distribute)
>
> Basic system parameters
> -----------------------------------------------------------------------
> -
> ------
> Host OS Description Mhz tlb cache mem
> scal
> pages line par
> load
> bytes
> --------- ------------- ----------------------- ---- ----- -----
> ------ ----
> 9919_unit Linux 2.6.25 powerpc-linux-gnu 434 32 32
> 1.0000 1
> 9919_unit Linux 2.6.18 powerpc-linux-gnu 445 32 32
> 1.0100 1
Hmm, processor MHz is off by 11/445
>
> Processor, Processes - times in microseconds - smaller is better
> -----------------------------------------------------------------------
> - ------
> Host OS Mhz null null open slct sig sig fork
> exec sh
> call I/O stat clos TCP inst hndl proc
> proc proc
> --------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ----
> ---- ----
> 9919_unit Linux 2.6.25 434 0.47 1.26 10.7 35.6 34.1 1.76 14.3 2646
> 9964 33.K
> 9919_unit Linux 2.6.18 445 0.35 1.24 9.27 22.9 32.7 1.87 13.8 2157
> 7825 26.K
>
> Basic integer operations - times in nanoseconds - smaller is better
> -------------------------------------------------------------------
> Host OS intgr intgr intgr intgr intgr
> bit add mul div mod
> --------- ------------- ------ ------ ------ ------ ------
> 9919_unit Linux 2.6.25 2.3300 0.0100 10.7 46.2 56.0
> 9919_unit Linux 2.6.18 2.2300 0.0100 10.3 45.4 54.1
>
> Basic float operations - times in nanoseconds - smaller is better
> -----------------------------------------------------------------
> Host OS float float float float
> add mul div bogo
> --------- ------------- ------ ------ ------ ------
> 9919_unit Linux 2.6.25 9.9500 10.1 46.2 66.2
> 9919_unit Linux 2.6.18 9.1100 9.0800 45.8 67.1
>
> Basic double operations - times in nanoseconds - smaller is better
> ------------------------------------------------------------------
> Host OS double double double double
> add mul div bogo
> --------- ------------- ------ ------ ------ ------
> 9919_unit Linux 2.6.25 9.3400 11.6 78.6 100.2
> 9919_unit Linux 2.6.18 9.1600 11.1 77.2 97.8
>
Integer and float operations are also off ...
> Context switching - times in microseconds - smaller is better
> -----------------------------------------------------------------------
> -
> -
> Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K
> 16p/64K
> ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw
> --------- ------------- ------ ------ ------ ------ ------ -------
> -------
> 9919_unit Linux 2.6.25 20.6 86.2 28.5 103.8 38.7 111.8 57.4
> 9919_unit Linux 2.6.18 5.3300 63.2 17.9 73.4 23.1 74.9 26.2
>
> *Local* Communication latencies in microseconds - smaller is better
> ---------------------------------------------------------------------
> Host OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP
> ctxsw UNIX UDP TCP conn
> --------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
> 9919_unit Linux 2.6.25 20.6 68.8 131. 353.1 533.4 461.7 1269
> 9919_unit Linux 2.6.18 5.330 36.1 87.8 225.3 402.7 331.8 520.1 970.
>
> File & VM system latencies in microseconds - smaller is better
> -----------------------------------------------------------------------
> --------
> Host OS 0K File 10K File Mmap Prot Page
> 100fd
> Create Delete Create Delete Latency Fault
> Fault
> selct
> --------- ------------- ------ ------ ------ ------ ------- -----
> ------- -----
> 9919_unit Linux 2.6.25 222.3 172.4 1003.0 350.5 41.5K 1.734
> 10.5 18.0
> 9919_unit Linux 2.6.18 181.5 144.3 789.3 293.9 23.9K 7.09560
> 19.3
>
> *Local* Communication bandwidths in MB/s - bigger is better
> -----------------------------------------------------------------------
> ------
> Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem
> Mem
> UNIX reread reread (libc) (hand) read
> write
> --------- ------------- ---- ---- ---- ------ ------ ------ ------
> ---- -----
> 9919_unit Linux 2.6.25 34.2 34.7 21.5 55.5 161.8 79.9 79.2
> 160. 116.1
> 9919_unit Linux 2.6.18 40.1 37.4 29.7 60.0 165.8 80.6 81.1
> 165. 117.8
>
> Memory latencies in nanoseconds - smaller is better
> (WARNING - may not be correct, check graphs)
> -----------------------------------------------------------------------
> -------
> Host OS Mhz L1 $ L2 $ Main mem Rand mem
> Guesses
> --------- ------------- --- ---- ---- -------- --------
> -------
> 9919_unit Linux 2.6.25 434 4.8150 174.6 183.3 511.8 No
> L2 cache?
> 9919_unit Linux 2.6.18 445 4.6880 174.1 175.4 497.5 No
> L2 cache?
And memory latency is off 13/500.
That sounds like it will be 16/666.
Are you using the same board and the same firmware?
If so, look at /proc/cpuinfo and/or the boot log to see what
frequency linux thinks the processor is running at. It sounds
like someone introduced or fixed a rounding error error calculating
the timebase frequency for your board.
Please try the sleep test: sleep for 100 seconds, and time with
either a stopwatch or another system. I think you will find they
take different amounts of time, and all the results need to be scaled.
You might be able to see it reading the hardware clock.
Actually, once you track that down, rerun and see what you find.
milton
More information about the Linuxppc-dev
mailing list