There is indeed, as @neheb and @pepe2k suggested something fishy going on.
Basically, frequencies reported by the kernel past 1000MHZ are bogus. I strongly believe that up until 1000MHZ speeds reported are real.
from 720MHZ to 1000MHZ there is no clock drift and past 1000MHZ clock drifts around 2-3s for each 20s on a real clock.
[ 0.000000] Clocks: CPU:720.000MHz, DDR:600.000MHz, AHB:200.000MHz, Ref:40.000MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5309056796 ns
[ 0.000007] sched_clock: 32 bits at 360MHz, resolution 2ns, wraps every 5965232126ns
[ 0.008684] Calibrating delay loop... 358.80 BogoMIPS (lpj=1794048)
no clock drift
Clocks: CPU:960.000MHz, DDR:600.000MHz, AHB:200.000MHz, Ref:40.000MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 3981792597 ns
[ 0.000006] sched_clock: 32 bits at 480MHz, resolution 2ns, wraps every 4473924606ns
[ 0.008679] Calibrating delay loop... 479.23 BogoMIPS (lpj=2396160)
no clock drift
Clocks: CPU:1000.000MHz, DDR:600.000MHz, AHB:200.000MHz, Ref:40.000MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 3822520893 ns
[ 0.000006] sched_clock: 32 bits at 500MHz, resolution 2ns, wraps every 4294967295ns
[ 0.008674] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
no clock drift
Clocks: CPU:1000.000MHz, DDR:760.000MHz, AHB:380.000MHz, Ref:40.000MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 3822520893 ns
[ 0.000005] sched_clock: 32 bits at 500MHz, resolution 2ns, wraps every 4294967295ns
[ 0.008506] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
no clock drift
Clocks: CPU:1040.000MHz, DDR:600.000MHz, AHB:200.000MHz, Ref:40.000MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 3675500859 ns
[ 0.000005] sched_clock: 32 bits at 520MHz, resolution 1ns, wraps every 4129776127ns
[ 0.007894] Calibrating delay loop... 518.55 BogoMIPS (lpj=2592768)
3s clock drift in 20s sleep agaist external clock
Clocks: CPU:1080.000MHz, DDR:600.000MHz, AHB:200.000MHz, Ref:40.000MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 3539371197 ns
[ 0.000005] sched_clock: 32 bits at 540MHz, resolution 1ns, wraps every 3976821759ns
[ 0.007463] Calibrating delay loop... 537.39 BogoMIPS (lpj=2686976)
3s clock drift in 20s sleep agaist external clock
What is interesting is that resolution changes from 2ns to 1ns ( from when there is no drift to when there is drift )
@lucize lucize benchmarking idea is a good one, as the dropbear process eats up all the router cpu and the clock is external.
stock benchmark:
Clocks: CPU:720.000MHz, DDR:600.000MHz, AHB:200.000MHz, Ref:40.000MHz
dd if=/dev/zero bs=4096 count=1048576 | ssh root@192.168.88.254 'cat > /dev/null'
root@192.168.88.254's password:
1048576+0 records in
1048576+0 records out
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 1170,7 s, 3,7 MB/s
Overclocked benchmark:
Clocks: CPU:1000.000MHz, DDR:760.000MHz, AHB:380.000MHz, Ref:40.000MHz
dd if=/dev/zero bs=4096 count=1048576 | ssh root@192.168.88.254 'cat > /dev/null'
root@192.168.88.254's password:
1048576+0 records in
1048576+0 records out
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 1000,08 s, 4,3 MB/s
this is how my frequencies look on the bootloader: