Netgear R7800 exploration (IPQ8065, QCA9984)

Hehe, but the fun fact is that it works

@facboy sorry for the tag... do you think these values are correct?

Setting scaling_max_freq to 384000
AVG     Method: MEMCPY  Elapsed: 0.03657        MiB: 16.00000   Copy: 437.564 MiB/s
AVG     Method: DUMB    Elapsed: 0.42556        MiB: 16.00000   Copy: 37.597 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.03649        MiB: 16.00000   Copy: 438.514 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00232        MiB: 1.00000    Copy: 430.608 MiB/s
AVG     Method: DUMB    Elapsed: 0.02743        MiB: 1.00000    Copy: 36.457 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00230        MiB: 1.00000    Copy: 434.141 MiB/s
Setting scaling_max_freq to 600000
AVG     Method: MEMCPY  Elapsed: 0.02870        MiB: 16.00000   Copy: 557.447 MiB/s
AVG     Method: DUMB    Elapsed: 0.26741        MiB: 16.00000   Copy: 59.834 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02805        MiB: 16.00000   Copy: 570.347 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00183        MiB: 1.00000    Copy: 545.673 MiB/s
AVG     Method: DUMB    Elapsed: 0.01685        MiB: 1.00000    Copy: 59.358 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00176        MiB: 1.00000    Copy: 566.958 MiB/s
Setting scaling_max_freq to 800000
AVG     Method: MEMCPY  Elapsed: 0.02632        MiB: 16.00000   Copy: 607.861 MiB/s
AVG     Method: DUMB    Elapsed: 0.18825        MiB: 16.00000   Copy: 84.995 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02692        MiB: 16.00000   Copy: 594.250 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00169        MiB: 1.00000    Copy: 590.877 MiB/s
AVG     Method: DUMB    Elapsed: 0.01165        MiB: 1.00000    Copy: 85.824 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00170        MiB: 1.00000    Copy: 589.414 MiB/s
Setting scaling_max_freq to 1000000
AVG     Method: MEMCPY  Elapsed: 0.02611        MiB: 16.00000   Copy: 612.740 MiB/s
AVG     Method: DUMB    Elapsed: 0.15128        MiB: 16.00000   Copy: 105.761 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02612        MiB: 16.00000   Copy: 612.454 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00161        MiB: 1.00000    Copy: 622.820 MiB/s
AVG     Method: DUMB    Elapsed: 0.00945        MiB: 1.00000    Copy: 105.770 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00160        MiB: 1.00000    Copy: 626.409 MiB/s
Setting scaling_max_freq to 1400000
AVG     Method: MEMCPY  Elapsed: 0.02122        MiB: 16.00000   Copy: 754.134 MiB/s
AVG     Method: DUMB    Elapsed: 0.10930        MiB: 16.00000   Copy: 146.390 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02116        MiB: 16.00000   Copy: 756.287 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00143        MiB: 1.00000    Copy: 699.496 MiB/s
AVG     Method: DUMB    Elapsed: 0.00677        MiB: 1.00000    Copy: 147.796 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00142        MiB: 1.00000    Copy: 706.664 MiB/s
Setting scaling_max_freq to 1725000
AVG     Method: MEMCPY  Elapsed: 0.02506        MiB: 16.00000   Copy: 638.394 MiB/s
AVG     Method: DUMB    Elapsed: 0.09251        MiB: 16.00000   Copy: 172.950 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02463        MiB: 16.00000   Copy: 649.538 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00158        MiB: 1.00000    Copy: 632.031 MiB/s
AVG     Method: DUMB    Elapsed: 0.00573        MiB: 1.00000    Copy: 174.593 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00155        MiB: 1.00000    Copy: 645.870 MiB/s
Setting scaling_max_freq to 800000
AVG     Method: MEMCPY  Elapsed: 0.03072        MiB: 16.00000   Copy: 520.813 MiB/s
AVG     Method: DUMB    Elapsed: 0.18795        MiB: 16.00000   Copy: 85.128 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.03077        MiB: 16.00000   Copy: 520.026 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00197        MiB: 1.00000    Copy: 507.537 MiB/s
AVG     Method: DUMB    Elapsed: 0.01177        MiB: 1.00000    Copy: 84.934 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00198        MiB: 1.00000    Copy: 506.175 MiB/s
Setting scaling_max_freq to 1000000
AVG     Method: MEMCPY  Elapsed: 0.03120        MiB: 16.00000   Copy: 512.885 MiB/s
AVG     Method: DUMB    Elapsed: 0.15305        MiB: 16.00000   Copy: 104.539 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.03183        MiB: 16.00000   Copy: 502.723 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00198        MiB: 1.00000    Copy: 506.329 MiB/s
AVG     Method: DUMB    Elapsed: 0.00950        MiB: 1.00000    Copy: 105.304 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00194        MiB: 1.00000    Copy: 515.384 MiB/s
Setting scaling_max_freq to 1400000
AVG     Method: MEMCPY  Elapsed: 0.02481        MiB: 16.00000   Copy: 645.026 MiB/s
AVG     Method: DUMB    Elapsed: 0.11144        MiB: 16.00000   Copy: 143.572 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02606        MiB: 16.00000   Copy: 614.081 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00160        MiB: 1.00000    Copy: 625.117 MiB/s
AVG     Method: DUMB    Elapsed: 0.00691        MiB: 1.00000    Copy: 144.779 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00161        MiB: 1.00000    Copy: 622.239 MiB/s
Setting scaling_max_freq to 1725000
AVG     Method: MEMCPY  Elapsed: 0.02445        MiB: 16.00000   Copy: 654.298 MiB/s
AVG     Method: DUMB    Elapsed: 0.09257        MiB: 16.00000   Copy: 172.849 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02450        MiB: 16.00000   Copy: 653.125 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00159        MiB: 1.00000    Copy: 629.842 MiB/s
AVG     Method: DUMB    Elapsed: 0.00573        MiB: 1.00000    Copy: 174.520 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00156        MiB: 1.00000    Copy: 639.550 MiB/s
Setting scaling_max_freq to 600000
Setting scaling_max_freq to 1000000
AVG     Method: MEMCPY  Elapsed: 0.03004        MiB: 16.00000   Copy: 532.620 MiB/s
AVG     Method: DUMB    Elapsed: 0.15444        MiB: 16.00000   Copy: 103.601 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.03030        MiB: 16.00000   Copy: 528.077 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00190        MiB: 1.00000    Copy: 526.704 MiB/s
AVG     Method: DUMB    Elapsed: 0.00955        MiB: 1.00000    Copy: 104.738 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00190        MiB: 1.00000    Copy: 525.873 MiB/s
Setting scaling_max_freq to 600000
Setting scaling_max_freq to 1400000
AVG     Method: MEMCPY  Elapsed: 0.02549        MiB: 16.00000   Copy: 627.734 MiB/s
AVG     Method: DUMB    Elapsed: 0.11149        MiB: 16.00000   Copy: 143.506 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02494        MiB: 16.00000   Copy: 641.424 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00159        MiB: 1.00000    Copy: 628.970 MiB/s
AVG     Method: DUMB    Elapsed: 0.00690        MiB: 1.00000    Copy: 144.892 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00160        MiB: 1.00000    Copy: 626.645 MiB/s
Setting scaling_max_freq to 600000
Setting scaling_max_freq to 1725000
AVG     Method: MEMCPY  Elapsed: 0.02506        MiB: 16.00000   Copy: 638.503 MiB/s
AVG     Method: DUMB    Elapsed: 0.09260        MiB: 16.00000   Copy: 172.785 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02467        MiB: 16.00000   Copy: 648.603 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00160        MiB: 1.00000    Copy: 625.352 MiB/s
AVG     Method: DUMB    Elapsed: 0.00574        MiB: 1.00000    Copy: 174.110 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00160        MiB: 1.00000    Copy: 623.247 MiB/s
Setting scaling_max_freq to 600000
Setting scaling_max_freq to 1400000
AVG     Method: MEMCPY  Elapsed: 0.02548        MiB: 16.00000   Copy: 628.047 MiB/s
AVG     Method: DUMB    Elapsed: 0.11193        MiB: 16.00000   Copy: 142.944 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02506        MiB: 16.00000   Copy: 638.463 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00158        MiB: 1.00000    Copy: 634.880 MiB/s
AVG     Method: DUMB    Elapsed: 0.00690        MiB: 1.00000    Copy: 144.938 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00158        MiB: 1.00000    Copy: 634.276 MiB/s
Setting scaling_max_freq to 1000000
Setting scaling_max_freq to 1000000
AVG     Method: MEMCPY  Elapsed: 0.02992        MiB: 16.00000   Copy: 534.784 MiB/s
AVG     Method: DUMB    Elapsed: 0.15168        MiB: 16.00000   Copy: 105.486 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02995        MiB: 16.00000   Copy: 534.206 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00197        MiB: 1.00000    Copy: 507.382 MiB/s
AVG     Method: DUMB    Elapsed: 0.00952        MiB: 1.00000    Copy: 105.087 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00192        MiB: 1.00000    Copy: 521.921 MiB/s
Setting scaling_max_freq to 1000000
Setting scaling_max_freq to 1400000
AVG     Method: MEMCPY  Elapsed: 0.02478        MiB: 16.00000   Copy: 645.643 MiB/s
AVG     Method: DUMB    Elapsed: 0.11017        MiB: 16.00000   Copy: 145.224 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02496        MiB: 16.00000   Copy: 641.123 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00167        MiB: 1.00000    Copy: 600.060 MiB/s
AVG     Method: DUMB    Elapsed: 0.00691        MiB: 1.00000    Copy: 144.810 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00160        MiB: 1.00000    Copy: 624.415 MiB/s
Setting scaling_max_freq to 1000000
Setting scaling_max_freq to 1725000
AVG     Method: MEMCPY  Elapsed: 0.02456        MiB: 16.00000   Copy: 651.399 MiB/s
AVG     Method: DUMB    Elapsed: 0.09137        MiB: 16.00000   Copy: 175.106 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02461        MiB: 16.00000   Copy: 650.237 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00157        MiB: 1.00000    Copy: 637.471 MiB/s
AVG     Method: DUMB    Elapsed: 0.00574        MiB: 1.00000    Copy: 174.292 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00155        MiB: 1.00000    Copy: 645.828 MiB/s
Setting scaling_max_freq to 384000
Setting scaling_max_freq to 1725000
AVG     Method: MEMCPY  Elapsed: 0.02459        MiB: 16.00000   Copy: 650.753 MiB/s
AVG     Method: DUMB    Elapsed: 0.09255        MiB: 16.00000   Copy: 172.877 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.02445        MiB: 16.00000   Copy: 654.341 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.00155        MiB: 1.00000    Copy: 646.162 MiB/s
AVG     Method: DUMB    Elapsed: 0.00578        MiB: 1.00000    Copy: 172.927 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00150        MiB: 1.00000    Copy: 667.824 MiB/s
Setting scaling_max_freq to 370000

Anyway no idea why the DUMB method is a direct way to get the current freq of the system... It does never fail.... for some reasons....

it seems a bit odd it got slower? your first run at 1.4g it hit 750mib, then at 1.7 it only did 640mib and after that everything seemed a bit slower.

fwiw mine hits 780mib at 1.7g, i'm on a few months old master build - have my own custom branch but its ~r17783.

is memcpy and memblock important? this with the l2 workaround reverted... will check if i gets different results with that up... Still can't understand why dumb values are correct but memcpy aren't...

Quiet here, any update on the scaling issue/crash?
My R7800 just passed 100 days of uptme with minfreq raised to 800Mhz... so I have to say it's stable as a rock with the workaround.
I'm also using the ath10k driver and firmware-5.bin_10.4-3.9.0.2-00156 FW from QCA.

2 Likes

I've been running mine with the performance governor always at max 1.7GHz for years without any problems. Not sure it's worth the constant scaling, it's not a phone running on battery and the temp increase is negligible 2-3C in my experience.
Also on mainline driver and firmware :+1:

Now, I hope someone will figure out a fix for the AQL issue ... I'm stuck on 21.02.1 because of it :frowning:

1 Like

Hello
I'm facing a constant kernel oops with IPSec/Strongswan on 5.15 (since .33).
The crash occurs when doing a NAT mapping event (client switches to another IP) in xfrm part of the kernel: https://github.com/strongswan/strongswan/issues/992

I spent something like 24 hours on this issue and I now think it might be related to some patches applied on the kernel.
Does "someone who knows" could please take a look ?

To keep the temps down, if you're running performance governor or other higher clock speeds, I noticed that putting the router on a "vented" surface instead of a flat table helps quite a lot with the temps.
I have mine on a window sill that has gaps between the wood pieces.

1 Like

My router is placed on a Foot stove (Netherland's model) because then I could use the holes on the top to route power and network cables for 2 SBCs stored in it.
I also think it looks kind of 'cute'.

Never thought (about) that it would (also) help with cooling :slight_smile:

If anyone wants to test i'm currently cleaning the 5.15 patches
(so to test this enable testing kernel version)

I'm trying a different implementation of the cache scaling driver... No fixes about the power loss but it's just a cleanup where i replace patches with upstream version.

Would love some feedback
https://git.openwrt.org/?p=openwrt/staging/ansuel.git;a=shortlog;h=refs/heads/ipq806x-cleanup

2 Likes

image

no idea if it's luck but the changes are producing more uptime...

would love more testing tho....

4 Likes

Hey @quarky, I noticed sometimes my Wifi becomes very slow, it's hardly usable, it goes away after maybe 5-10 minutes. Sounds familiar? :wink:

I see this when my R7800 is running the virtual time-based airtime scheduler. Since it was reverted back to the round-robin scheduler plus enhancement patch my R7800 appears to be good.

Were there any other workaround other than patching? I don't quite remember.
I don't feel like poking around too much since the build is very stable apart from the occasional wifi slowness.

Restarting WiFi clears up the problem for me, so maybe you may want to write a script to restart WiFi every day?

Just upgrade your router to 22.03 RC5. It should fix your WIFI issue.

1 Like

Yeah, it does for me too, I thought about it.

@vochong Hmm, are you sure? The problem lies in the airtime scheduler, is that fixed now?
EDIT: I guess so... maybe it's this fix: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=6d49a25804d78d639e08a67c86b26991ce6485d8

And another fix today for multicast-induced latency bug:
https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=ec9f82fa18c7c8deb4875152d7907855d186f4c6

3 Likes

Initial impression is that Wi-Fi is behaving nicely after those changes. Feels more responsive too.
Let's hope the uptime will be as good as the last bulld I had.

@shelterx Good to hear.

I hope someone can persuade @nbd to commit the fixes to 21.02 branch as well, so the WIFI in the next 21.02.04 release will be good again. As of now, 21.02.1 WIFI is the only good one in the 21.02 series, because the 21.02.2 / 21.0.2.3 releases had this VTBA scheduler commit:

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=68886f301850c6c35bdff002a719fed1ded584c9