Article 6P03H Request Support For OpenWrt Kernel 6.6.35 Router

Request Support For OpenWrt Kernel 6.6.35 Router

by
KFO
from LinuxQuestions.org on (#6P03H)
I bought new modem with PCIe mode for this modem 5G (RM551) Quectel installed on Banana BPI-R4

I did some test (PCIe ) between MCUZONE Board (no driver - driver free) and OpenWrt board (Which OpenWrt using Kernel 6.6.35)

MCUZONE PCIe
i'm getting 800mb/s to 900mb/s
image

Where The PCIe for OpenWrt
i'm getting 550 mb/s

So I started searching to know why ? I found CPU utilization ( when Its running for all CPUs 0,1,2 & 3) IRQ .......only CPU 0 is running and reaching up to 75% utilization where other CPUs 1,2 and 3 are almost sleeping (:arrow_down:low utilization) :expressionless:

So I tried to let all CPUs run at same time on PCIe mode but no luck ... still system is assigning load to CPU 0 also when I activated IRQ package to disrepute load but no luck
Also with this

Quote:
echo f > /sys/class/net/usb0/queues/rx-0/rps_cpus
only CPU 0 is running

I did one thing made a big different on speed and utilization
Quote:
echo 2 > /proc/irq/116/smp_affinity

Where CPU 1 gave a good speeds

Image for test:
https://imgur.com/a/sZLj8rS

Quote:
root@OpenWrt:~# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
11: 64144 84579 104371 92990 GICv3 30 Level arch_timer
16: 0 0 0 0 mt-eint 1 Edge sfp2-tx-fault
17: 0 0 0 0 mt-eint 2 Edge sfp2-los
27: 0 0 0 0 mt-eint 12 Edge 11230000.mmc cd
29: 0 0 0 0 mt-eint 14 Edge gpio-keys
69: 0 0 0 0 mt-eint 54 Edge sfp1-los
84: 0 0 0 0 mt-eint 69 Edge sfp1-tx-fault
97: 0 0 0 0 mt-eint 82 Edge sfp1-mod-def0
98: 0 0 0 0 mt-eint 83 Edge sfp2-mod-def0
99: 16 0 0 0 GICv3 155 Level ttyS0
102: 14309 0 0 0 GICv3 172 Level 11007000.spi
104: 1026399 2105448 2378418 0 GICv3 229 Level 15100000.ethernet
105: 615057 1210835 0 1210491 GICv3 230 Level 15100000.ethernet
106: 31 0 0 0 GICv3 168 Level 11003000.i2c
107: 18 0 0 0 GICv3 177 Level 11005000.i2c
108: 0 0 0 0 GICv3 170 Level 1100a000.lvts
109: 0 0 0 0 GICv3 142 Level wdt_bark
110: 3963 353 0 0 GICv3 175 Level 11230000.mmc
111: 5 0 0 0 GICv3 241 Level mt7530
112: 0 0 0 0 mt7530 0 Edge mt7530-0:00
113: 0 0 0 0 mt7530 1 Edge mt7530-0:01
114: 3 0 0 0 mt7530 2 Edge mt7530-0:02
115: 2 0 0 0 mt7530 3 Edge mt7530-0:03
116: 0 3754489 0 0 GICv3 204 Level xhci-hcd:usb1
IPI0: 112362 8141 7366 7552 Rescheduling interrupts
IPI1: 5522892 352854 2373571 1606272 Function call interrupts
IPI2: 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 CPU stop (for crash dump) interrupts
IPI4: 0 0 0 0 Timer broadcast interrupts
IPI5: 0 0 0 0 IRQ work interrupts
IPI6: 0 0 0 0 CPU wake-up interrupts
Quote:
20:32:31 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
20:32:32 all 0.00 0.00 3.98 0.00 5.22 15.17 0.00 0.00 0.00 75.62
20:32:32 0 0.00 0.00 14.85 0.00 1.98 7.92 0.00 0.00 0.00 75.25
20:32:32 1 0.00 0.00 0.96 0.00 18.27 31.73 0.00 0.00 0.00 49.04
20:32:32 2 0.00 0.00 0.00 0.00 0.00 19.19 0.00 0.00 0.00 80.81
20:32:32 3 0.00 0.00 0.00 0.00 0.00 1.02 0.00 0.00 0.00 98.98
CPU 1 and 2 are giving a higher speeds
CPU 0 and 4 are giving a lower speeds

I appreciate answering on these questions :point_down:

How I can let the system use all CPUs ? only CPU 0 will work ....
echo f > /proc/irq/116/smp_affinity

Quote:
root@OpenWrt:~# echo f > /sys/class/net/usb0/queues/rx-0/rps_cpus
<<<---- (This only worked , where only CPU 0 will run )

How I can let OpenWrt use CPU 1 and 2 same time ?

echo 6 > /proc/irq/116/smp_affinity
I tried this echo and didn't work for dual cores (1 & 2) only core 1 was running and core 2 idle
External Content
Source RSS or Atom Feed
Feed Location https://feeds.feedburner.com/linuxquestions/latest
Feed Title LinuxQuestions.org
Feed Link https://www.linuxquestions.org/questions/
Reply 0 comments