I have run some benchmarking tests before and after upgrading the bootloader. The process upgrade the bootloader from 1.0.1.1 to 1.0.1.6.
Some interesting results, but at a cost for overclockers.
The test setup was a laptop connected through Ethernet on the LAN side. The WAN side was connected to my regular LAN, where I ran the "iperf" daemon on an HTPC.
HW acceleration was forced disabled, so I could truly evaluate the raw CPU muscle in terms of routing.
I did two tests:
1) I ran iperf between the laptop and the HTPC to measure routing performance (keep in mind this was done with HW acceleration disabled, so it was raw CPU muscle). The client was run like this:
Code:
iperf -c 192.168.10.130 -M 1400 -N -l 64K -t 30
2) I ran a simple openssl benchmark on the router:
Code:
openssl speed aes-128-cbc
This was done with a rough build of my FW with 374_306 code, so it has my OpenSSL my optimizations in it.
Code:
OpenSSL 1.0.0j 10 May 2012
built on: Tue Oct 29 19:45:57 EDT 2013
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: arm-brcm-linux-uclibcgnueabi-gcc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -ffunction-sections -fdata-sections -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
I ran the two tests in four scenarios:
1) Pre-upgrade, with CPU @ 800 MHz and DDR @ 533 MHz
2) Pre-upgrade, with Turbo mode enabled (which bumps the CPU at 1 GHz)
3) Post-upgrade, with CPU @ 800 MHz and DDR @ 666 MHz
4) Post-upgrade, with Turbo mode enabled
CPU: 800 MHz
DDR: 533 MHz
iperf:
[152] local 192.168.1.100 port 1841 connected with 192.168.10.130 port 5001
[ ID] Interval Transfer Bandwidth
[152] 0.0-30.0 sec 1.16 GBytes 333 Mbits/sec
openssl:
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128 cbc 25299.61k 27983.66k 28966.83k 29250.56k 29392.90k
CPU: 1 GHz (through Turbo mode)
DDR: 533 MHz
iperf:
[152] local 192.168.1.100 port 2086 connected with 192.168.10.130 port 5001
[ ID] Interval Transfer Bandwidth
[152] 0.0-30.0 sec 1.30 GBytes 371 Mbits/sec
openssl:
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128 cbc 31755.66k 35012.59k 36352.85k 36820.51k 36711.59k
CPU: 800 MHz
DDR: 666 MHz
iperf:
[152] local 192.168.1.100 port 2301 connected with 192.168.10.130 port 5001
[ ID] Interval Transfer Bandwidth
[152] 0.0-30.0 sec 1.23 GBytes 351 Mbits/sec
openssl:
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128 cbc 25468.94k 28007.64k 29075.80k 29366.61k 29455.70k
CPU: 1 GHz (through Turbo mode)
DDR: 666 MHz
<Router failed to boot>
Conclusion:
The good news is, this does improve raw routing performance by around 6%. The bad news is, Turbo mode no longer works with the upgraded bootloader (either due to the higher DDR clock, or because the feature is simply broken in that new BL).
While increasing the CPU clock yields a higher performance boost than increasing the DDR clock, the DDR clock is less likely to generate additional heat, and it's also giving you that increase within the HW specifications (while overclocking is pushing it beyond the official, tested specs, so stability can vary).