openwrt-mirror/target/linux/bcm53xx
Rafał Miłecki fcbd39689e bcm53xx: enable & setup packet steering
Packet steering can improve NAT masquarade performance on Northstar by
40-50%. It makes reaching 940-942 Mb/s possible on BCM4708 (and
obviously BCM47094 too). Add scripts setting up the most optimal
Northstar setup.

Below are testing results for running iperf TCP traffic from LAN to WAN.
They were used to pick up golden values.

┌──────────┬──────────┬────────────────────┬────────────────────┐
│   eth0   │  br-lan  │ flow_offloading=0  │ flow_offloading=1  │
│          │          ├─────────┬──────────┼─────────┬──────────┤
│ rps_cpus │ rps_cpus │ BCM4708 │ BCM47094 │ BCM4708 │ BCM47094 │
├──────────┼──────────┼─────────┼──────────┼─────────┼──────────┤
│        0 │        0 │     387 │      671 │     707 │      941 │
│        0 │        1 │     343 │      576 │     705 │      941 │
│        0 │        2 │   ✓ 574 │    ✓ 941 │     704 │      940 │
│        1 │        0 │     320 │      549 │     561 │      941 │
│        1 │        1 │     327 │      551 │     553 │      941 │
│        1 │        2 │     523 │    ✓ 940 │     559 │      940 │
│        2 │        0 │     383 │      652 │   ✓ 940 │      941 │
│        2 │        1 │     448 │      754 │   ✓ 942 │      941 │
│        2 │        2 │     404 │      655 │   ✓ 941 │      941 │
└──────────┴──────────┴─────────┴──────────┴─────────┴──────────┘

Above tests were performed with all eth0 interrupts handled by CPU0.
Setting "echo 2 > /proc/irq/38/smp_affinity" was tested on BCM4708 but
it didn't increased speeds (just required different steering):

┌──────────┬──────────┬───────────┐
│   eth0   │  br-lan  │ flow_offl │
│   rx-0   │   rx-0   │ oading=0  │
│ rps_cpus │ rps_cpus │  BCM4708  │
├──────────┼──────────┼───────────┤
│        0 │        0 │       384 │
│        0 │        1 │     ✓ 574 │
│        0 │        2 │       348 │
│        1 │        0 │       383 │
│        1 │        1 │       412 │
│        1 │        2 │       448 │
│        2 │        0 │       321 │
│        2 │        1 │       520 │
│        2 │        2 │       327 │
└──────────┴──────────┴───────────┘

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2022-06-24 07:39:51 +02:00
..
base-files bcm53xx: enable & setup packet steering 2022-06-24 07:39:51 +02:00
files/arch/arm/boot/compressed bcm53xx: move bcm47xx_sprom driver to 4.4 specific directory 2017-02-06 10:18:20 +01:00
generic bcm53xx: add generic subtarget 2019-09-02 22:38:47 +02:00
image bcm53xx: remove BROKEN flag from Asus RT-AC88U 2022-06-07 16:16:56 +02:00
patches-5.10 bcm53xx: disable GRO by default at kernel level 2022-06-24 07:39:27 +02:00
patches-5.15 bcm53xx: copy bgmac revert (performance fix) to 5.15 2022-06-17 08:04:31 +02:00
profiles target: use SPDX license identifiers on Makefiles 2021-02-10 15:47:18 +01:00
config-5.10 config: limit CONFIG_DEBUG_INFO to top-level generic configs 2022-05-18 13:32:06 +03:00
config-5.15 config: limit CONFIG_DEBUG_INFO to top-level generic configs 2022-05-18 13:32:06 +03:00
Makefile bcm53xx: prepare kernel 5.15 support 2022-03-30 23:22:46 +02:00
modules.mk bcm53xx: fix kmod-i2c-bcm-iproc for kernel 5.10 2021-08-31 11:41:04 +02:00