You could try moving USB and ethernet interrupts to separated cores to get better CPU utilization. This could make it better but I don't think it would bring the speed up to what you want.
The historical record says modem used to work just fine with older kernel....
Thank you Dear @981213 ( Developer ) For your respond and cooperation
The CPU utilization is fine and already I tried to move the Interrupts from core to other or assigning them to all core (Irq) for USB and for Ethernet
Note: I used multiple systems to overclock the CPU to 1.9 GHZ where the performance is same and speed are same
Mostly The Issue with USB driver or something related to USB system on OpenWrt with Kernel 6.6
If we searched about High Speed USB 2.0 ,USB 3.0 you will find the speed are limited to 480Mb/s similar to our case
I think the driver should be limited to SuperSpeed USB 3.0 , 3.1 3.2 and USB 4.0 ... I tried to reinstall the drivers of USB 3.0 on OpenWrt but no benefit
There is something linked with USB Driver and utilization of network.
One byte is made up of eight BITS. Your assumption is wrong.
You can check whether your modem is operating under USB2.0 or USB3.0 from the kernel log. It should say new SuperSpeed USB device like what's shown below:
[28371.953170] usb 4-2: new SuperSpeed USB device number 4 using xhci_hcd
[28371.966379] usb 4-2: New USB device found, idVendor=2cb7, idProduct=0a05, bcdDevice= 4.04
[28371.966395] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[28371.966398] usb 4-2: Product: FG650 Module
[28371.966402] usb 4-2: Manufacturer: Fibocom Wireless Inc.
[28371.966404] usb 4-2: SerialNumber: 0123456789ABCDEF
[28372.047817] usbcore: registered new interface driver option
[28372.047834] usbserial: USB Serial support registered for GSM modem (1-port)
[28372.064522] cdc_ncm 4-2:1.0: MAC-Address: fa:96:42:e4:af:a3
If it says new high-speed USB device instead, your modem is operating under USB2.0 and you should check the board wiring.
I've heard that too. Typically in the same incredidly useless way.... With no measurements, no kernel versions, no nothing... Not even a pointer where you got that impression.
Can you back up your claim? Please tell us how you know that the modem used to work just fine with older kernel"?
If we acually knew
- a version where this is known to work noticably better, and
- what hardware this is observed on, and
- how the numbers were found,
then we could try to bisect this.
Yes, I do know that some vendor firmwares perform better. Doesn't help much as long as there is no straight line between that firmware and mainline Linux
here, ton of witnesses
These what I found ...
xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 2
[ 5.208058] xhci-mtk 11200000.usb: Host supports USB 3.2 Enhanced SuperSpeed
[ 5.215393] hub 1-0:1.0: USB hub found
[ 5.219150] hub 1-0:1.0: 1 port detected
[ 5.223298] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[ 5.231571] hub 2-0:1.0: USB hub found
[ 5.235331] hub 2-0:1.0: 1 port detected
[ 5.242290] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 5.257994] init: - preinit -
[ 5.520024] mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/internal link mode
[ 5.528179] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 10Gbps/Full - flow control rx/tx
[ 5.542580] mt7530-mmio 15020000.switch lan1: configuring for phy/internal link mode
[ 5.661594] usb 1-1: new high-speed USB device number 2 using xhci-mtk
[ 5.844342] hub 1-1:1.0: USB hub found
[ 5.848293] hub 1-1:1.0: 5 ports detected
[ 5.991778] usb 2-1: new SuperSpeed USB device number 2 using xhci-mtk
[ 6.030371] hub 2-1:1.0: USB hub found
[ 6.034181] hub 2-1:1.0: 4 ports detected
[ 6.551579] usb 1-1.5: new high-speed USB device number 3 using xhci-mtk
[ 6.701593] random: crng init done
[ 6.816121] usb 2-1.1: new SuperSpeed USB device number 3 using xhci-mtk
[ 6.854111] usb 2-1.1: LPM exit latency is zeroed, disabling LPM.
Full Details :
FIT: Selected configuration: "config-mt7988a-bananapi-bpi-r4" (OpenWrt bananapi_bpi-r4)
[ 3.893384] FIT: kernel sub-image 0x00001000..0x0074a3c0 "kernel-1" (ARM64 OpenWrt Linux-6.6.33)
[ 3.903119] FIT: flat_dt sub-image 0x0074b000..0x00755921 "fdt-1" (ARM64 OpenWrt bananapi_bpi-r4 device tree blob)
[ 3.914329] FIT: flat_dt sub-image 0x00756000..0x00756611 "fdt-mt7988a-bananapi-bpi-r4-emmc" (ARM64 OpenWrt bananapi_bpi-r4 device tree overlay mt7988a-bananapi-bpi-r4-emmc)
[ 3.930658] FIT: flat_dt sub-image 0x00757000..0x0075711c "fdt-mt7988a-bananapi-bpi-r4-rtc" (ARM64 OpenWrt bananapi_bpi-r4 device tree overlay mt7988a-bananapi-bpi-r4-rtc)
[ 3.946813] FIT: flat_dt sub-image 0x00758000..0x007585c9 "fdt-mt7988a-bananapi-bpi-r4-sd" (ARM64 OpenWrt bananapi_bpi-r4 device tree overlay mt7988a-bananapi-bpi-r4-sd)
[ 3.962794] FIT: flat_dt sub-image 0x00759000..0x007598eb "fdt-mt7988a-bananapi-bpi-r4-wifi-mt7996a" (ARM64 OpenWrt bananapi_bpi-r4 device tree overlay mt7988a-bananapi-bpi-r4-wifi-mt7996a)
[ 3.980508] FIT: filesystem sub-image 0x0075a000..0x02c9cfff "rootfs-1" (ARM64 OpenWrt bananapi_bpi-r4 rootfs)
[ 3.991380] block mmcblk0p7: mapped 1 uImage.FIT filesystem sub-image as /dev/fit0
[ 3.999146] block mmcblk0p7: mapped remaing space as /dev/fitrw
[ 4.133102] mtk_soc_eth 15100000.ethernet: generated random MAC address 65:74:68:25:64:00
[ 4.143475] mtk_soc_eth 15100000.ethernet eth0: mediatek frame engine at 0xffffffc082e80000, irq 103
[ 4.153174] mtk_soc_eth 15100000.ethernet eth1: mediatek frame engine at 0xffffffc082e80000, irq 103
[ 4.162860] mtk_soc_eth 15100000.ethernet eth2: mediatek frame engine at 0xffffffc082e80000, irq 103
[ 4.256573] mt7530-mmio 15020000.switch: configuring for fixed/internal link mode
[ 4.264091] mt7530-mmio 15020000.switch: Link is Up - 10Gbps/Full - flow control rx/tx
[ 4.288526] mt7530-mmio 15020000.switch wan (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7988 PHY] (irq=113)
[ 4.323918] mt7530-mmio 15020000.switch lan1 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7988 PHY] (irq=114)
[ 4.359443] mt7530-mmio 15020000.switch lan2 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7988 PHY] (irq=115)
[ 4.395348] mt7530-mmio 15020000.switch lan3 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7988 PHY] (irq=116)
[ 4.406351] mtk_soc_eth 15100000.ethernet eth0: entered promiscuous mode
[ 4.413066] DSA: tree 0 setup
[ 4.416685] UBI: auto-attach mtd1
[ 4.419994] ubi: mtd1 is already attached to ubi0
[ 4.424705] UBI error: cannot attach mtd1
[ 4.428815] clk: Disabling unused clocks
[ 4.438741] VFS: Mounted root (squashfs filesystem) readonly on device 259:0.
[ 4.446005] Freeing unused kernel memory: 512K
[ 4.450471] Run /sbin/init as init process
[ 4.454561] with arguments:
[ 4.457517] /sbin/init
[ 4.460213] with environment:
[ 4.463360] HOME=/
[ 4.465709] TERM=linux
[ 4.599993] init: Console is alive
[ 4.603487] init: - watchdog -
[ 5.090624] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 5.118300] usbcore: registered new interface driver usbfs
[ 5.123833] usbcore: registered new interface driver hub
[ 5.129155] usbcore: registered new device driver usb
[ 5.134782] gpio_button_hotplug: loading out-of-tree module taints kernel.
[ 5.149357] xhci-mtk 11200000.usb: supply vbus not found, using dummy regulator
[ 5.156837] xhci-mtk 11200000.usb: supply vusb33 not found, using dummy regulator
[ 5.164763] xhci-mtk 11200000.usb: xHCI Host Controller
[ 5.169993] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 1
[ 5.180442] xhci-mtk 11200000.usb: hcc params 0x01403f99 hci version 0x110 quirks 0x0000000000200010
[ 5.189595] xhci-mtk 11200000.usb: irq 117, io mem 0x11200000
[ 5.195448] xhci-mtk 11200000.usb: xHCI Host Controller
[ 5.200665] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 2
[ 5.208058] xhci-mtk 11200000.usb: Host supports USB 3.2 Enhanced SuperSpeed
[ 5.215393] hub 1-0:1.0: USB hub found
[ 5.219150] hub 1-0:1.0: 1 port detected
[ 5.223298] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[ 5.231571] hub 2-0:1.0: USB hub found
[ 5.235331] hub 2-0:1.0: 1 port detected
[ 5.242290] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 5.257994] init: - preinit -
[ 5.520024] mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/internal link mode
[ 5.528179] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 10Gbps/Full - flow control rx/tx
[ 5.542580] mt7530-mmio 15020000.switch lan1: configuring for phy/internal link mode
[ 5.661594] usb 1-1: new high-speed USB device number 2 using xhci-mtk
[ 5.844342] hub 1-1:1.0: USB hub found
[ 5.848293] hub 1-1:1.0: 5 ports detected
[ 5.991778] usb 2-1: new SuperSpeed USB device number 2 using xhci-mtk
[ 6.030371] hub 2-1:1.0: USB hub found
[ 6.034181] hub 2-1:1.0: 4 ports detected
[ 6.551579] usb 1-1.5: new high-speed USB device number 3 using xhci-mtk
[ 6.701593] random: crng init done
[ 6.816121] usb 2-1.1: new SuperSpeed USB device number 3 using xhci-mtk
[ 6.854111] usb 2-1.1: LPM exit latency is zeroed, disabling LPM.
[ 6.863010] usb 2-1.1: config 1 has an invalid interface number: 10 but max is 5
[ 6.870395] usb 2-1.1: config 1 has an invalid interface number: 11 but max is 5
[ 6.877783] usb 2-1.1: config 1 has an invalid interface number: 11 but max is 5
[ 6.885169] usb 2-1.1: config 1 has no interface number 4
[ 6.890556] usb 2-1.1: config 1 has no interface number 5
[ 7.959398] F2FS-fs (fitrw): Disable nat_bits due to incorrect cp_ver (13190931708288294054, 18446744073709551615)
[ 7.974031] F2FS-fs (fitrw): Mounted with checkpoint version = 8f5dca6
[ 7.982264] mount_root: switching to f2fs overlay
[ 7.988697] overlayfs: null uuid detected in lower fs '/', falling back to xino=off,index=off,nfs_export=off.
[ 8.000485] urandom-seed: Seeding with /etc/urandom.seed
[ 8.041037] procd: - early -
[ 8.043974] procd: - watchdog -
[ 8.576602] procd: - watchdog -
[ 8.579904] procd: - ubus -
[ 8.736409] procd: - init -
[ 8.951963] kmodloader: loading kernel modules from /etc/modules.d/*
[ 8.980915] NET: Registered PF_ALG protocol family
[ 8.990779] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 9.017662] cryptodev: driver 1.13 loaded.
[ 9.023666] pca954x 1-0070: supply vdd not found, using dummy regulator
[ 9.030270] urngd: v1.0.2 started.
[ 9.034015] i2c i2c-1: Added multiplexed i2c bus 2
[ 9.038976] i2c i2c-1: Added multiplexed i2c bus 3
[ 9.043986] i2c i2c-1: Added multiplexed i2c bus 4
[ 9.048928] i2c i2c-1: Added multiplexed i2c bus 5
[ 9.053751] pca954x 1-0070: registered 4 multiplexed busses for I2C switch pca9545
[ 9.065068] GACT probability on
[ 9.069145] Mirror/redirect action on
[ 9.078231] u32 classifier
[ 9.080944] input device check on
[ 9.084623] Actions configured
[ 9.093259] usbcore: registered new interface driver cdc_wdm
[ 9.101509] usbcore: registered new interface driver qmi_wwan_q
[ 9.108891] usbcore: registered new interface driver qmi_wwan_f
[ 9.116640] crypto-safexcel 15600000.crypto: can't request region for resource [mem 0x15600000-0x1577ffff]
[ 9.126325] crypto-safexcel 15600000.crypto: failed to get resource
[ 9.132592] crypto-safexcel: probe of 15600000.crypto failed with error -16
[ 9.146785] at24 2-0050: supply vcc not found, using dummy regulator
[ 9.184945] at24 2-0057: supply vcc not found, using dummy regulator
[ 9.192044] at24 2-0057: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 9.199985] usbcore: registered new interface driver cdc_acm
[ 9.205695] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 9.220225] cdc_ether 2-1.1:1.10 usb0: register 'cdc_ether' at usb-11200000.usb-1.1, CDC Ethernet Device, 72:aa:93:54:ce:71
[ 9.231527] usbcore: registered new interface driver cdc_ether
[ 9.239687] usbcore: registered new interface driver cdc_ncm
[ 9.246856] Loading modules backported from Linux version v6.6.15-0-g51f354b815c4
[ 9.254371] Backport generated by backports.git 193becf2
[ 9.276308] usbcore: registered new interface driver qmi_wwan
[ 9.283186] usbcore: registered new interface driver rndis_host
[ 9.291384] sfp sfp1: Host maximum power 3.0W
[ 9.296398] sfp sfp2: Host maximum power 3.0W
[ 9.303795] usbcore: registered new interface driver usbserial_generic
[ 9.310387] usbserial: USB Serial support registered for generic
[ 9.327287] xt_time: kernel timezone is -0000
[ 9.332900] usbcore: registered new interface driver cdc_mbim
[ 9.455302] PPP generic driver version 2.4.2
[ 9.460143] PPP MPPE Compression module registered
[ 9.465497] NET: Registered PF_PPPOX protocol family
[ 9.474859] usbcore: registered new interface driver option
[ 9.480459] usbserial: USB Serial support registered for GSM modem (1-port)
[ 9.489144] usbcore: registered new interface driver qcserial
[ 9.494933] usbserial: USB Serial support registered for Qualcomm USB modem
[ 9.502491] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 10.069503] bridger[2202]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL set
[ 12.634247] mtk_soc_eth 15100000.ethernet eth0: Link is Down
[ 12.656778] mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/internal link mode
[ 12.664987] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 10Gbps/Full - flow control rx/tx
[ 12.669891] mt7530-mmio 15020000.switch lan1: configuring for phy/internal link mode
[ 12.682322] br-lan: port 1(lan1) entered blocking state
[ 12.687578] br-lan: port 1(lan1) entered disabled state
[ 12.692914] mt7530-mmio 15020000.switch lan1: entered allmulticast mode
[ 12.699529] mtk_soc_eth 15100000.ethernet eth0: entered allmulticast mode
[ 12.706584] mt7530-mmio 15020000.switch lan1: entered promiscuous mode
[ 12.737693] mt7530-mmio 15020000.switch lan2: configuring for phy/internal link mode
[ 12.746541] br-lan: port 2(lan2) entered blocking state
[ 12.751809] br-lan: port 2(lan2) entered disabled state
[ 12.757062] mt7530-mmio 15020000.switch lan2: entered allmulticast mode
[ 12.763950] mt7530-mmio 15020000.switch lan2: entered promiscuous mode
[ 12.773326] mt7530-mmio 15020000.switch lan3: configuring for phy/internal link mode
[ 12.781986] br-lan: port 3(lan3) entered blocking state
[ 12.787219] br-lan: port 3(lan3) entered disabled state
[ 12.792519] mt7530-mmio 15020000.switch lan3: entered allmulticast mode
[ 12.799577] mt7530-mmio 15020000.switch lan3: entered promiscuous mode
[ 12.811015] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/10gbase-r link mode
[ 12.868468] br-lan: port 4(eth1) entered blocking state
[ 12.873721] br-lan: port 4(eth1) entered disabled state
[ 12.878977] mtk_soc_eth 15100000.ethernet eth1: entered allmulticast mode
[ 12.886518] mtk_soc_eth 15100000.ethernet eth1: entered promiscuous mode
[ 12.898129] mt7530-mmio 15020000.switch wan: configuring for phy/internal link mode
[ 12.908611] br-wan: port 1(wan) entered blocking state
[ 12.913805] br-wan: port 1(wan) entered disabled state
[ 12.918976] mt7530-mmio 15020000.switch wan: entered allmulticast mode
[ 12.926806] mt7530-mmio 15020000.switch wan: entered promiscuous mode
[ 12.940108] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/10gbase-r link mode
[ 12.986526] br-wan: port 2(eth2) entered blocking state
[ 12.991783] br-wan: port 2(eth2) entered disabled state
[ 12.997035] mtk_soc_eth 15100000.ethernet eth2: entered allmulticast mode
[ 13.004059] mtk_soc_eth 15100000.ethernet eth2: entered promiscuous mode
[ 14.207238] option 2-1.1:1.0: GSM modem (1-port) converter detected
[ 14.213850] usb 2-1.1: GSM modem (1-port) converter now attached to ttyUSB0
[ 14.220995] option 2-1.1:1.1: GSM modem (1-port) converter detected
[ 14.227518] usb 2-1.1: GSM modem (1-port) converter now attached to ttyUSB1
[ 14.234733] option 2-1.1:1.2: GSM modem (1-port) converter detected
[ 14.241206] usb 2-1.1: GSM modem (1-port) converter now attached to ttyUSB2
[ 14.248419] option 2-1.1:1.3: GSM modem (1-port) converter detected
[ 14.254949] usb 2-1.1: GSM modem (1-port) converter now attached to ttyUSB3
[ 16.081151] mt7530-mmio 15020000.switch lan3: Link is Up - 1Gbps/Full - flow control rx/tx```
you do have a proper USB3.0 connection.
You should just lower your expectation then. As I said before, the MCUZONE board comparison you made earlier is unfair, because that's a PCIE ethernet card, not a router connected over USB.
Dear
let me correct something
MCUZONE has USB and PCIE on same connection ,
Important Note: New Modems Quectel RM551E and Fibocom FM190 = X75 Snapdragon doesn't support PCIE mode As per Company right now (I have letter from the Quectel and Fibocom company)
So if you installed them on MCUZONE board and you switched the interface to PCIE mode >>> the modem will not work
Check Point 6 part 3
Additional to this ... The previous speed test on MCUZONE where I got almost 900 mb/s was through USB port.. we can't get network through ethernet because the PCIe mode is not active yet ........
As Per MCUZONE
OK. But that doesn't change the conclusion. Your test isn't done through your specific router SoC.
Like what @bmork said, there aren't enough info to do anything about this problem here.
Did I ask for witnesses?
Maybe you're just stupid, or maybe you are deliberately trying to confuse this topic. But either way, the result is the same. We're now farther way from a solution than before you decided to share your "knowledge".
OpenWrt made to make the things better and easier
Dear
The Issue we know there is issue with this system on USB mode for 5G modems
My Opinion (I'm talking about my self) :
The right approach is to ask the USB developer on this system (Kernel or OpenWrt) to take a look on USB driver or USB mode and connections on this system ( I mean on OpenWrt system with and Kernel )
I'm sure there is a way for improvement on this issue if some one from developers take this subject seriously ..
Note : This subject is open because we want to find solution ...
Thank you for your time
True. But there is definitely something suspiscious wrt our current USB3 wwan performance. I believe we should be able to do better. And I would love to look into the claimed regression. But it's very hard to do that when we can't even establish the working baseline.
What I do know for sure is that a platform like the NR7101 is way faster with vendor firmware than it is with OpenWrt. This is a MT7621 with a USB3 attached RG502 modem, using the MT7621 xhci controller. Probably relevant for newer Mediatek SoCs too. But I dont have a 5G modem to test that with yet. The MT7986 router I have easily can do 3+ Gbits/s ethernet over its external USB3 port. Similar speeds should be possible with a 5G modem.
Dear @bmork
Thank you for your interest to find a solution.
I'm ready to give you a full remote access on my computer (PC) and Router to find a solution for this issue ...even if you couldn't find a solution not issue...your support is adding a lot
It is very simple - end customer lost half of emulated USB speed due to some driver enchancement, nobody tries to use direct PCIE mode.
This is complete nonsense. Please stop. Being confused is no excuse for confusing others.
Thanks for the offer, but I don't think it will help me at the current stage. Maybe someone else with a better ida of where to start.
I'll try to find some time to test what I have instead. It should be possible to boot pretty old kernels on the NR7101. If it's true that this is a regression introduced some time the last few years then it must be possible to reproduce it there. And if the problem is severe enough thgen maybe it's reproducible with a cat12 modem like the em7565 too. Testing that with a mt7986 openwrt device, comparing it with pc performance using the same modem is high on my todo list. Just haven't gotten around to it yet.
I don't know if this will help, but one of the "fast 5G corporate routers" is based on release r7676-cddd7b4c77.
There are also traces of an interesting package
\etc\config\turboacc
config turboacc 'config'
option sw_flow '0'
option hw_flow '0'
option sfe_flow '1'
option fullcone_nat '0'
option fullcone6 '0'
option hw_wed '0'
option bbr_cca '1'
Let me share point I observed it
Where I tried to IRQ intrp to all cores ...... through Putty
IRQ:116 for USB
echo 1 > /proc/irq/116/smp_affinity
echo 2 > /proc/irq/116/smp_affinity
echo 4 > /proc/irq/116/smp_affinity
echo 8 > /proc/irq/116/smp_affinity
echo 3f > /sys/class/net/usb0/queues/rx-0/rps_cpus
System is utilizing only one core through USB and its driver
Also I installed package IRQ and I enabled it ...
Where the system only using one core which is Core 0
Note :The other values at core 1 ,2 and 3 came when I changed the utilization to check one by one Cores (function) but nothing
I think we need to let the system utilize all cores 0,1,2 and 3 to get full utilization of modem speeds