Xrx200 IRQ balancing between VPEs

No it doesn't have to be combined, balancing can put RX interrupt on one core and TX interrupt on the second core (concurrent interrupts doesn't have to wait on each other). The DMA burst change will just use a more optimal value for DMA (IMO, the tplink kernel source does it ...), which means DMA doesn't need to ask for every single byte, it just ask for a block of data.

I tried to compile the source but it fails around compiling gdb in toolchain. I'm not sure if I can continue any further from it unless the error gets resolved. I'll post the error log here once I have my laptop with me in a few hours maybe. In the meantime if someone else is able to compile source successfully then maybe please share the firmware for Tp-Link TD-W8980 here and I can then test it how it works.

Running v18.06.1 I get 3 mb/s from this router and 5 mb/s to this router on LAN. Tested through iperf and netcat.

Update: Correct me if I'm wrong but I think that two of the above functions are already available in Kernel config but are not available by default. Run make kernel_menuconfig and go to Kernel Type for the options.
2019-01-28

I have make a kernelpatch with this script:

#!/bin/bash

CWD=$(pwd)
BUILD_D=/mnt/mapper/sda3/build # the build directory change if need
RESULT_ROOT="$CWD"
RESULT_D="$RESULT_ROOT"
DL_D="$CWD/Xrx200-IRQ-balancing-between-VPEs-files"
PATCHES_D="$BUILD_D/create_kpatches_irqbalancing" 

test -d "$DL_D" || mkdir -p "$DL_D"
cd "$DL_D"
wget -O irq.c https://pastebin.com/raw/1Bv9abyB
wget -O smp-mt.c https://pastebin.com/raw/Mvx3Cu3b
wget -O vr9_dtsi.txt https://pastebin.com/raw/dYqHpaCz

rm -rf "$PATCHES_D" # delete the build directory first if needed

test -d "$PATCHES_D" || mkdir -p "$PATCHES_D"
cd "$PATCHES_D"
git clone https://git.openwrt.org/openwrt/openwrt.git openwrt
cd ./openwrt
git checkout master

make menuconfig # choice lantiq / xrx200
make target/linux/{clean,prepare} V=s
KVER=$(find ./build_dir/target-mips_24kc_musl/linux-lantiq_xrx200 -maxdepth 1 -mindepth 1 | grep "linux-" | rev | cut -d- -f1 | rev)

rm -r ../a
mkdir -p ../a/arch/mips/lantiq
cp -vf ./build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-$KVER/arch/mips/lantiq/irq.c ../a/arch/mips/lantiq
mkdir -p ../a/arch/mips/kernel
cp -vf ./build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-$KVER/arch/mips/kernel/smp-mt.c ../a/arch/mips/kernel
mkdir -p ../a/arch/mips/boot/dts
cp -vf ./build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-$KVER/arch/mips/boot/dts/vr9.dtsi ../a/arch/mips/boot/dts

rm -r ../b
mkdir -p ../b/arch/mips/lantiq
cp -vf "$DL_D/irq.c" 		../b/arch/mips/lantiq/irq.c
mkdir -p ../b/arch/mips/kernel
cp -vf "$DL_D/smp-mt.c" 	../b/arch/mips/kernel/smp-mt.c
mkdir -p ../b/arch/mips/boot/dts
cp -vf "$DL_D/vr9_dtsi.txt" 	../b/arch/mips/boot/dts/vr9.dtsi

cd ..
diff -aurN a b > "$CWD/4060-Xrx200-IRQ-balancing-between-VPEs.patch" || diff -aurN a b > ./4060-Xrx200-IRQ-balancing-between-VPEs.patch

exit 0

( I need it because your way is to complex for my buildscripts )
At the moment my Raspberry is building Openwrt for my Easybox 904xDSL i hope it works and i can test it in the next days.
thanks for help @pc2005

SMP is supported by default (running userspace apps on both VPEs), but there was no support for running interrupt handlers on the second VPE (all interrupt handlers had to run on first VPE = bottleneck).

I see, there was a change in newer kernel which changes interrupts handling "MIPS: lantiq: Fix IPI interrupt handling", but IMO there is still no peripheral IRQ support. Gonna need to fix my patch.

thanks, I think i'm gonna use your script for other patches too :smiley:

You can try to contact the developers and submit the patch so it can be ported in OpenWrt and may get included in v19.01.

Patches 0901-add-icu-smp-support.patch 0902-enable-external-irqs-for-second-vpe.patch 0903-add-icu1-node-for-smp.patch , compatible with git openwrt snapshot a3ccac6b1d693527befa73532a6cf5abda7134c0 and kernel linux-4.14.96. Should be possible to add them into target/linux/lantiq/patches-4.14, but I didn't test it if the patch folder applies after files folder it should work. Or you can apply them directly on kernel in build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96 .

I can't test the patches on my system because support for cifs is broken in snapshots for now. I couldn't make it work on my router. So I had to go back to stable release. If you have tested it on your end it should be okay to submit the pull request for now.

Sorry, Happy too early my created patch end up in:

 make[2] package/install
 make[2] target/install
 make[3] -C target/linux install
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `ltq_disable_irq':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:121: multiple definition of `ltq_disable_irq'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:121: first defined here
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `ltq_mask_and_ack_irq':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:137: multiple definition of `ltq_mask_and_ack_irq'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:137: first defined here
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `ltq_enable_irq':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:172: multiple definition of `ltq_enable_irq'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:172: first defined here
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `get_c0_perfcount_int':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:626: multiple definition of `get_c0_perfcount_int'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:626: first defined here
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `ltq_eiu_get_irq':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:113: multiple definition of `ltq_eiu_get_irq'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:113: first defined here
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `arch_init_ipiirq':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:407: multiple definition of `arch_init_ipiirq'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:407: first defined here
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `icu_of_init':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:487: multiple definition of `icu_of_init'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:487: first defined here
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `plat_irq_dispatch':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:447: multiple definition of `plat_irq_dispatch'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:447: first defined here
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `get_c0_compare_int':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:633: multiple definition of `get_c0_compare_int'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:633: first defined here
mips-openwrt-linux-musl-ld: arch/mips/kernel/smp-mt.o: in function `arch_init_irq':
/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/kernel/smp-mt.c:642: multiple definition of `arch_init_irq'; arch/mips/lantiq/irq.o:/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/arch/mips/lantiq/irq.c:642: first defined here
make[5]: *** [vmlinux] Error 1
make[4]: *** [/opt/build/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/.image] Error 2
make[3]: *** [install] Error 2
time: target/linux/install#70.82#22.53#94.29
make[2]: *** [target/linux/install] Error 2
make[1]: *** [/opt/build/owrt/staging_dir/target-mips_24kc_musl/stamp/.target_install] Error 2
make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on
/opt/build/owrt/include/toplevel.mk:216: die Regel für Ziel „world“ scheiterte
make: *** [world] Fehler 1
 

But i am 100% shure that the files are replaced by new like copy.
Can someone confirm the error ?

Im not entire sure either , but seems like in your workspace there is already a patch applied that does some of the changes youve added from @pc2005

Maybe try do a recursive grep on the multiple definition var errors. Eg grep -rn ltq_disable_irq /opt/build/owrt/build_dir/target-mips_24kc_musl/

Sorry ashes on my head
there was an fail in my script it copy irq.c to smp-mp.c
i have edit it. but anyway i try the patches from pc2005

1 Like

@pc2005 the patches end up in:

Applying /opt/build/openwrt-sb1-master/target/linux/lantiq/patches-4.14/0901-add-icu-smp-support.patch using plaintext: 
(Stripping trailing CRs from patch; use --binary to disable.)
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- ./a/arch/mips/lantiq/irq.c 2019-01-30 02:20:35.739994259 +0100
|+++ ./b/arch/mips/lantiq/irq.c 2019-01-30 04:30:31.152538191 +0100
--------------------------
No file to patch.  Skipping patch.
patch unexpectedly ends in middle of line
10 out of 10 hunks ignored
Patch failed!  Please fix /opt/build/openwrt-sb1-master/target/linux/lantiq/patches-4.14/0901-add-icu-smp-support.patch!
Makefile:23: recipe for target '/opt/build/openwrt-sb1-master/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/.prepared_f12eb2f9aed002097e49068404c55dea' failed
make[3]: *** [/opt/build/openwrt-sb1-master/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/linux-4.14.96/.prepared_f12eb2f9aed002097e49068404c55dea] Error 1
make[3]: Leaving directory '/opt/build/openwrt-sb1-master/target/linux/lantiq'
Makefile:13: recipe for target 'prepare' failed
make[2]: *** [prepare] Error 2
make[2]: Leaving directory '/opt/build/openwrt-sb1-master/target/linux'
time: target/linux/prepare#41.75#16.02#160.44
target/Makefile:23: recipe for target 'target/linux/prepare' failed
make[1]: *** [target/linux/prepare] Error 2
make[1]: Leaving directory '/opt/build/openwrt-sb1-master'
/opt/build/openwrt-sb1-master/include/toplevel.mk:216: die Regel für Ziel „target/linux/prepare“ scheiterte
make: *** [target/linux/prepare] Fehler 2
irq.c
smp-mt.c

I guest it must be named a/arch/mips/lantiq/irq.c instead ./a/arch/mips/lantiq/irq.c
I fear there is a "./" to much.

But in the moment it does not make sense to make a build because the package postgres will not build and in consequence of that a lot of other needed packages are missed

My mistake :wink: without both ./ in patch header the openwrt will patch and compile fine.

I'm using rootfs on NFS (and kernel is downloaded only into RAM), so its fine for me to make many devel builds.

Fixed patches:
0901-add-icu-smp-support.patch
0902-enable-external-irqs-for-second-vpe.patch
0903-add-icu1-node-for-smp.patch

1 Like

Hi Petr,

Thank you for your efforts. I have a BT HomeHub 5a (xrx200 rev 1.2) and was keen to try your patches. I downloaded trunk this morning (kernel 4.14.96) and placed your patches (all 5 of them) in target/linux/lantiq/patches-4.14:

mac@mac-desktop:~/source/target/linux/lantiq/patches-4.14$ ls -al 09*
-rw-r--r-- 1 mac mac  8657 Jan 31 12:33 0901-add-icu-smp-support.patch
-rw-r--r-- 1 mac mac   432 Jan 31 12:33 0902-enable-external-irqs-for-second-vpe.patch
-rw-r--r-- 1 mac mac   921 Jan 31 12:34 0903-add-icu1-node-for-smp.patch
-rw-r--r-- 1 mac mac 26619 Jan 31 12:30 0904-backport-vanilla-eth-driver.patch
-rw-r--r-- 1 mac mac   545 Jan 31 12:31 0905-increase-dma-burst-size.patch

Sadly they failed to build:

Applying /home/mac/source/target/linux/lantiq/patches-4.14/0701-NET-lantiq-etop-of-mido.patch using plaintext: 
patching file drivers/net/ethernet/lantiq_etop.c

Applying /home/mac/source/target/linux/lantiq/patches-4.14/0901-add-icu-smp-support.patch using plaintext: 
patching file arch/mips/lantiq/irq.c
Hunk #1 FAILED at 49.
Hunk #2 succeeded at 62 with fuzz 2.
Hunk #3 FAILED at 120.
Hunk #4 FAILED at 131.
Hunk #5 FAILED at 143.
Hunk #6 FAILED at 197.
Hunk #7 succeeded at 242 with fuzz 2.
Hunk #8 FAILED at 280.
Hunk #9 FAILED at 300.
Hunk #10 FAILED at 344.
8 out of 10 hunks FAILED -- saving rejects to file arch/mips/lantiq/irq.c.rej
Patch failed!  Please fix /home/mac/source/target/linux/lantiq/patches-4.14/0901-add-icu-smp-support.patch!

Not sure why.

I downloaded current git https://github.com/openwrt/openwrt.git with last commit efa6b8b6b6463a406bbbff30839ef9c05d0daaac and it works OK. But by looking at your patch sizes, they are much bigger, did you click on "raw" or "download" button on linked webpage?

Hi, there I can install the new patch, but it looks like not working on Easybox 904 xDSL:

root@OpenWrt:/# cat /proc/interrupts
           CPU0       CPU1       
  7:     387744     388066      MIPS   7  timer
  8:       4751       4485      MIPS   0  IPI call
  9:       9468      10813      MIPS   1  IPI resched
 62:          0          0       icu  62  1e101000.usb, dwc2_hsotg:usb1
 63:      41170          0       icu  63  mei_cpe
 72:          0      14729       icu  72  vrx200_rx
 73:          0      20599       icu  73  vrx200_tx
 75:          0          0       icu  75  vrx200_tx_2
 91:          0        178       icu  91  1e106000.usb, dwc2_hsotg:usb2
 96:          0      27498       icu  96  ptm_mailbox_isr
112:          0       8808       icu 112  asc_tx
113:          0       3011       icu 113  asc_rx
114:          0          0       icu 114  asc_err
126:          0          0       icu 126  gptu
127:          0          0       icu 127  gptu
128:          0          0       icu 128  gptu
129:          0          0       icu 129  gptu
130:          0          0       icu 130  gptu
131:          0          0       icu 131  gptu
ERR:          0
root@OpenWrt:/# cat /proc/cpuinfo
system type             : xRX200 rev 1.2
machine                 : EasyBox 904 xDSL
processor               : 0
cpu model               : MIPS 34Kc V5.6
BogoMIPS                : 332.54
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt
Options implemented     : tlb 4kex 4k_cache prefetch mcheck ejtag llsc dc_aliases userlocal vint perf_cntr_intr_bit nan_legacy nan_2008 perf
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VPE                     : 0
VCED exceptions         : not available
VCEI exceptions         : not available

processor               : 1
cpu model               : MIPS 34Kc V5.6
BogoMIPS                : 333.82
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt
Options implemented     : tlb 4kex 4k_cache prefetch mcheck ejtag llsc dc_aliases userlocal vint perf_cntr_intr_bit nan_legacy nan_2008 perf
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VPE                     : 1
VCED exceptions         : not available
VCEI exceptions         : not available

Download speed should be 96Mb/s but it is 85Mb/s

Does it sense to test the files from beginning of this thread ?

1 Like

Did you changed the lantiq switch driver as well? Or only the IRQ Patches?
I tried to use all patches from the mailing list, but I can't get activated the wifi for example.
EDIT: Nevermind. I mixed up IRQ and How can we make the lantiq xrx200 devices faster. The latter one causes some problems ( My testing branch is located here ).

Great !
I use the files from Post #1 + the script from Post 7#
And it looks like working:

[    0.076718] smp: Bringing up secondary CPUs ...

[    0.082140] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.

[    0.082154] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes

[    0.082299] !!!!!!!!init secondary smp-mt.c

[    0.082319] CPU1 revision is: 00019556 (MIPS 34Kc)

[    0.113360] Synchronize counters for CPU 1: 

[    0.136976] smp finish!

[    0.136980] done.

[    0.145775] === MIPS MT State Dump ===

[    0.149588] -- Global State --

[    0.152715]    MVPControl Passed: deadbeef

[    0.156881]    MVPControl Read: 00000003

[    0.160874]    MVPConf0 : b8008403

[    0.164344] -- per-VPE State --

[    0.167558]   VPE 0

[    0.169727]    VPEControl : 00000001

[    0.173373]    VPEConf0 : 800f0003

[    0.176847]    VPE0.Status : 1100ff00

[    0.180605]    VPE0.EPC : 8000d470 r4k_wait_irqoff+0x1c/0x24

[    0.186308]    VPE0.Cause : 50808000

[    0.189954]    VPE0.Config7 : 80080400

[    0.193771]   VPE 1

[    0.195941]    VPEControl : 00000001

[    0.199588]    VPEConf0 : 802f0003

[    0.203061]    VPE1.Status : 1100ff00

[    0.206810]    VPE1.EPC : 80018ff0 vsmp_smp_finish+0x3c/0x5c

[    0.212522]    VPE1.Cause : 50808000

[    0.216168]    VPE1.Config7 : 80080400

[    0.219985] -- per-TC State --

[    0.223111]   TC 0

[    0.225194]    TCStatus : 18102000

[    0.228666]    TCBind : 00000000

[    0.231973]    TCRestart : 8000d468 r4k_wait_irqoff+0x14/0x24

[    0.237780]    TCHalt : 00000000

[    0.241079]    TCContext : 4a04c89e

[    0.244638]   TC 1 (current TC with VPE EPC above)

[    0.249499]    TCStatus : 00000001

[    0.252971]    TCBind : 00200001

[    0.256278]    TCRestart : 8007daa0 printk+0x10/0x30

[    0.261304]    TCHalt : 00000000

[    0.264603]    TCContext : 284c1256

[    0.268161]   TC 2

[    0.270245]    TCStatus : 00000400

[    0.273717]    TCBind : 00400001

[    0.277020]    TCRestart : fdaeaa4e 0xfdaeaa4e

[    0.281529]    TCHalt : 00000001

[    0.284828]    TCContext : 2a6cc6e3

[    0.288386]   TC 3

[    0.290470]    TCStatus : 00000400

[    0.293942]    TCBind : 00600001

[    0.297244]    TCRestart : 90840b2e 0x90840b2e

[    0.301754]    TCHalt : 00000001

[    0.305053]    TCContext : acfc2301

[    0.308611] ===========================

[    0.312760] smp: Brought up 1 node, 2 CPUs

[    0.321970] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
root@OpenWrt:/# cat /proc/interrupts
           CPU0       CPU1       
  0:       1597       1534      MIPS   0  IPI_resched
  1:        741       7335      MIPS   1  IPI_call
  7:      40889      41039      MIPS   7  timer
  8:          0          0      MIPS   0  IPI call
  9:          0          0      MIPS   1  IPI resched
 62:          0          0       icu  62  1e101000.usb, dwc2_hsotg:usb1
 63:        314          0       icu  63  mei_cpe
 72:       6227          0       icu  72  vrx200_rx
 73:          0       6278       icu  73  vrx200_tx
 75:          0          0       icu  75  vrx200_tx_2
 91:        178          0       icu  91  1e106000.usb, dwc2_hsotg:usb2
112:        891          0       icu 112  asc_tx
113:          0        154       icu 113  asc_rx
114:          0          0       icu 114  asc_err
126:          0          0       icu 126  gptu
127:          0          0       icu 127  gptu
128:          0          0       icu 128  gptu
129:          0          0       icu 129  gptu
130:          0          0       icu 130  gptu
131:          0          0       icu 131  gptu
ERR:          0

I will do more tests when the build are complett ready

@QAuge

As if I'm deserting what I'm doing
But i guess no, but i must do a look into the vr9.dtsi
Unfortunately i have not build the wifi driver yet, because buildproblems.

1 Like

I've sent a benchmark mail to the openwrt devel mailing list. If somebody wants a tarball upload somewhere, please tell me where.

I have do some little test but my VDSL2 speed does not increase, it is beetween 80Mb/s and 88Mb/s and should 95Mb/s (Data Rate)
But i thing the VDSL2 Modem does not 100% working.
It shows me Annex A but my Provider have Annexe B and i have choice an Annex B firmware
"option ds_snr_offset" Have no effect
And normally i should have 100Mb/s and last but not least i have no idea how much my ISP reduce my line at the moment.

I remember i have reached the same speed without the irq-balancing patch

With only one core + telefon support i get only 70Mb/s

New combined patches in thread How can we make the lantiq xrx200 devices faster.