How can we make the lantiq xrx200 devices faster

My patches don't touch the DSL part hence you don't see any improvement. The performance gain is only visible during transfers over the Ethernet interface (WAN and LAN).

1 Like

The maximum speed of VDSL is 100Mbps, conditioned by the physical state of the copper pair line. Before @olek210 patches this SoC was already able to transfer over 100Mbps in NAT, so no performance improvement under VDSL is possible.

wan to lan
wan to 5ghz
lan to 5ghz

i tested these but performance is still poor

Does any one noticed that recent trunk has IRQ VPE enabled but moving ethernet IRQ (72 / 73) to second core kills network ?
kernel 5.4 + DFS + VPE patch didn't had that issues as I'm still using it on "production" FB7412

Indeed i noticed the same thing.. I am able to move the ath9k interrupts to the second core. But moving the dsl or erhernet interrupt hangs my wr9980.

You should use this patch.
0901-add-icu-smp-support.patch

1 Like

Hi, I have Astoria networks VGV7519 (VRX288 V1.2) running latest stable OpenWRT v21.02.3.
My internet uplink is pppoe ethernet 100mbps (I don't use dsl/telephony)
What patches/settings would you advice to improve performance of this unit? I already enabled "Software flow offloading", but would like to go a bit further.

root@wrt0-vgv:~# cat /proc/cpuinfo
system type             : xRX200 rev 1.2
machine                 : KPN Experiabox V8
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 32fpr prefetch mcheck ejtag llsc dc_aliases userlocal vint perf_cntr_intr_bit perf
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VPE                     : 0
VCED exceptions         : not available
VCEI exceptions         : not available
root@wrt0-vgv:~# dmesg | grep smp
[    0.000000] Kernel command line: console=ttyLTQ0,115200 mem=62M vpe1_load_addr=0x83e00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp
[    0.075297] smp: Bringing up secondary CPUs ...
[    0.079759] smp: Brought up 1 node, 1 CPU

Please use 22.03.0-rc1 or trunk It contains major improvements for lantiq platform . And there will be more in stable 22.03.0 branch in next few months .

I tried both 22.03.0-rc1 and trunk but there is still 1 core shown in /proc/cpuinfo and no SMP support. So do I still need to compile myself and apply some patches?

lantiq devices with FXS (analogue phone-) ports reserve one CPU core as voice core (running a special voice firmware and reserving 2 MB of the main RAM). If you don't need that and want to re-use the second core as CPU core, you will have to adapt the cmdline in your device's dts and rebuild OpenWrt (from source).

This is the expected behaviour and not a bug.

1 Like

What do i need to edit in the .dts to enable the second core on ARV7519RW22?

That should be &vmmc declaration but since i cannot see it vr9_arcadyan_arv7519rw22.dts so I assume You will need upgrade to OpenWRT 22.03 or master cause old builds doesn't have SMP

I just installed 22.03.2 stable on a Fritzbox 7412. SMP seems to be enabled but I still only get ~25 Mb/s via VDSL. I assume the neccessary patches to improve performance are not (yet) included in this version? Can somebody give me a quick sum up of which patches to apply?

Can you post the output of:
ubus call dsl metrics
and a screenshoot of all the information shown by the go-dsl tool (there is a download link on that page if you do not want to build it yourself)?
We can take it from there :wink:

root@OpenWrt:~# ubus call dsl metrics
{
	"api_version": "4.17.18.6",
	"firmware_version": "5.9.1.4.0.7",
	"chipset": "Lantiq-VRX200",
	"driver_version": "1.5.17.6",
	"state": "Showtime with TC-Layer sync",
	"state_num": 7,
	"up": true,
	"uptime": 3787,
	"atu_c": {
		"vendor_id": [
			181,
			0,
			66,
			68,
			67,
			77,
			178,
			33
		],
		"vendor": "Broadcom 178.33",
		"system_vendor_id": [
			181,
			0,
			66,
			68,
			67,
			77,
			0,
			0
		],
		"system_vendor": "Broadcom",
		"version": [
			118,
			49,
			49,
			46,
			48,
			52,
			46,
			51,
			51,
			32,
			32,
			32,
			32,
			32,
			32,
			0
		],
		"serial": [
			101,
			113,
			32,
			110,
			114,
			32,
			112,
			111,
			114,
			116,
			58,
			48,
			48,
			32,
			32,
			111,
			101,
			109,
			105,
			100,
			32,
			115,
			111,
			102,
			116,
			119,
			97,
			114,
			101,
			114,
			101,
			118
		]
	},
	"power_state": "L0 - Synchronized",
	"power_state_num": 0,
	"xtse": [
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		2
	],
	"annex": "B",
	"standard": "G.993.2",
	"profile": "17a",
	"mode": "G.993.2 (VDSL2, Profile 17a, with down- and upstream vectoring)",
	"upstream": {
		"vector": true,
		"trellis": true,
		"bitswap": false,
		"retx": true,
		"virtual_noise": false,
		"interleave_delay": 0,
		"data_rate": 12736000,
		"latn": 9.300000,
		"satn": 9.300000,
		"snr": 21.900000,
		"actps": -90.100000,
		"actatp": 14.300000,
		"attndr": 36305000
	},
	"downstream": {
		"vector": true,
		"trellis": true,
		"bitswap": true,
		"retx": true,
		"virtual_noise": false,
		"interleave_delay": 130,
		"data_rate": 63679000,
		"latn": 11.700000,
		"satn": 11.700000,
		"snr": 26.400000,
		"actps": -90.100000,
		"actatp": -2.400000,
		"attndr": 135856128
	},
	"errors": {
		"near": {
			"es": 0,
			"ses": 0,
			"loss": 0,
			"uas": 1,
			"lofs": 0,
			"fecs": 0,
			"hec": 0,
			"ibe": 0,
			"crc_p": 0,
			"crcp_p": 0,
			"cv_p": 0,
			"cvp_p": 0,
			"rx_corrupted": 0,
			"rx_uncorrected_protected": 0,
			"rx_retransmitted": 0,
			"rx_corrected": 0,
			"tx_retransmitted": 0
		},
		"far": {
			"es": 271,
			"ses": 46,
			"loss": 0,
			"uas": 1,
			"lofs": 0,
			"fecs": 2868,
			"hec": 0,
			"ibe": 0,
			"crc_p": 0,
			"crcp_p": 0,
			"cv_p": 0,
			"cvp_p": 0,
			"rx_corrupted": 307389,
			"rx_uncorrected_protected": 256230,
			"rx_retransmitted": 0,
			"rx_corrected": 51159,
			"tx_retransmitted": 1732344
		}
	},
	"erb": {
		"sent": 18601,
		"discarded": 0
	}
}

go-dsl somehow doesn't work for me, it exits with status 127.


`

Not sure, but likely not configured correctly, @janh?
Maybe try the following from the command line:
./dsl -d lantiq_ssh -o Command="dsl_cpe_pipe.sh" -u root openwrt.lan # OpenWrt
replace the openwrt.lan with your FB's IP address, if that works I am confident the GUI version can also be configured corrctly somehow.

That is ~63.7/12.7 Mbps data rate so your 25Mbps result does not seem to come from the actual VDSL link. Could you post a speedtest from your link?

If I might ask, which ISP and what speed where you offered? This looks a bit like Deutsche Telekom's nominal 50/10 plan, which IIRC provisions something around 63/12 as gross rates.

1 Like

That actually worked:

Loading data… done

           State:    Showtime
            Mode:    VDSL2 Profile 17a
          Uptime:    1 hour, 21 minutes

          Remote:    Broadcom 11.4.33 (178.33)
           Modem:    Infineon 5.9.1.4.0.7

     Actual rate:       63679 kbit/s      12736 kbit/s 
 Attainable rate:      135856 kbit/s      36305 kbit/s 
         MINEFTR:       63679 kbit/s    4141065 kbit/s 

         Bitswap:          on               off        
   Rate adaption:         off               off        

    Interleaving:        0.13 ms              0 ms     
             INP:        41.0 symbols      41.0 symbols
  Retransmission:          on                on        

       Vectoring:        full              full        

     Attenuation:        11.7 dB            9.3 dB     
      SNR margin:        26.4 dB           21.9 dB     
  Transmit power:        14.3 dBm          -2.4 dBm    

    RTX TX Count:     1732344                 0        
     RTX C Count:           0             51159        
    RTX UC Count:           0            256230        

       FEC Count:           0              7764        
       CRC Count:           0              1567        

        ES Count:           0               271        
       SES Count:           0                46     

You guessed right, this is a 50/10 plan from 1&1 (via DTAG). I get quite rock solid 53 Mb/s down, 11 Mb/s up with a stock firmware 7362. 7412 with OpenWRT 22.03.2 only reaches between 20 and 30 Mb/s down.

OK, in theory the same credentials should also work with the GUI version, it would be nice to see the spektra...

But I doubt that the DSL link is your problem. Whem you run a speedtest could you please:

  1. connect the computer to the router via ethernet, not aWiFi
  2. use a ssh session into the router and run htop and look at the CPU bars
  3. while you run your speedtest of choice
  4. post a screenshot fro m htop furing the test
  5. post a link to the speedtest result.

Matybe this will help figuring out where the problem sits.

Exit status 127 means that the command was not found. It should work if you specify the command dsl_cpe_pipe.sh in the advanced options.

2 Likes

OK, using the LAN connection, I am actually able to get the full line speed. First CPU core is at 100%:

Bildschirmfoto_2022-12-21_22-33-16

With a wifi connection, I only get around 28 Mb/s. The wifi connection to the router itself is shown with 130 Mb/s. CPU load is somewhat lower though:
Bildschirmfoto_2022-12-21_22-23-41