Back on topic...
These results are posted here rather than in the lead post as use of flow offload on master
requires a patch to the sources, as well as that non-default compilation (-O2
vs. -Os
) and settings (performance
speed governor) were used. Multiple requests have been made to have OpenWrt adopt the "mainstream" -O2
optimization (or even the more aggressive -O3
), though the project continues to use the -Os
"Optimize for size" setting, even for devices that do not have image-size issues. It is my understanding that flow offload is available for many devices in the 18.06 builds.
As expected, the performance of the routing/NAT increases significantly for the devices tested (a key objective of the switch-core design) and there appears to be a slight increase in the performance of advanced features that require ongoing CPU use (SQM, VPN). The improvement in SQM and VPN performance may be due to CPU offload, the choice of -O2
, that all cores on the IPQ4019 are running at the same speed, or some combination of the foregoing.
I don't have plans at this time to test the other two SoC-based devices with flow offload enabled, qualify the differences in performance due to the more-standard -O2
(or -O3
) compiler optimizations, or the impact of changing the CPU-speed governor. The test scripts are linked in the first post for anyone interested in exploring these effects further.
(Notes from the lead post and its tables in relation to stream balance and SQM behavior likely apply here as well.)
Routing/NAT – Flow Offload Enabled, -O2
Target | Clock | Cores | SoC / CPU | Notes | 8 Dn | 8 Up | RRUL | 8 Dn / SQM | 8 Up / SQM | RRUL / SQM |
---|---|---|---|---|---|---|---|---|---|---|
ipq40xx | 717 | 4 | IPQ4019 | Single RGMII | 920 (6) |
940 (5) |
1280 (4) |
240 (3) |
340 (7) |
270 (3) |
ath79 | 775 | 1 | QCA9563 | Single MAC | 870 (6) |
640 (6) |
660 (5) |
230 (2) |
260 (3) |
260 (4) |
WireGuard, Routing/NAT – Flow Offload Enabled, -O2
Target | Clock | Cores | SoC / CPU | Notes | 8 Dn | 8 Up | RRUL | 8 Dn / SQM | 8 Up / SQM | RRUL / SQM |
---|---|---|---|---|---|---|---|---|---|---|
ipq40xx | 717 | 4 | IPQ4019 | Single RGMII | 400 (18) |
280 (57) |
300 (45) |
197 (8) |
171 (7) |
196 (9) |
ath79 | 775 | 1 | QCA9563 | Single MAC | 88 (33) |
91 (39) |
89 (33) |
43 (10) |
48 (9) |
45 47 (10) (12) |
OpenVPN, Routing/NAT – Flow Offload Enabled, -O2
Target | Clock | Cores | SoC / CPU | Notes | 8 Dn | 8 Up | RRUL | 8 Dn / SQM | 8 Up / SQM | RRUL / SQM |
---|---|---|---|---|---|---|---|---|---|---|
ipq40xx | 717 | 4 | IPQ4019 | Single RGMII | 39 (68) |
30 (24) |
37 (66) |
23 25 (9) (59) |
22 (4) |
22 (5) |
ath79 | 775 | 1 | QCA9563 | Single MAC | 24 (167) |
17 (55) |
23 (155) |
13 15 (9) (66) |
13 14 (8) (40) |
11 15 (10) (64) |
Edit History: 2019-09-20 -- Transcription error in WireGuard numbers for QCA9563 device corrected.