Dynalink DL-WRX36 Askey RT5010W IPQ8072A technical discussion

Almost the entire post is a verbatim copypasta from some hallucinating, dumb, lame language model, a "chatbot gpt", according to the poster. Of course the damned machine has no clue about the context and purpose of setting the IRQ/core affinities this way here.

1 Like

Correct know very little.

Are you guys doing this because the defaults are not using all cores automatically? Or the defaults are but this tweak yields greater performance you say?

By default all IRQs are assigned to the first core… these are some easy ones to offload that don’t appear to affect functionality. @hnyman did quite a bit of testing and found that many would cause instability if moved, so thus far these are the only ones I’ve moved.

1 Like

You wouldn't be running WLAN.HK.2.9.0.1-01890 firmware by any chance?

I run 2x 2.4G SSID's & 2x 5G SSID's and have not had any WiFi crash requiring a reboot with 23.05.rc4 and 23.05.0 release.

I'm currently using the default wireless driver packaged with each release, currently WLAN.HK.2.9.0.1-01385 but I've also used WLAN.HK.2.9.0.1-01862 without issues either, and using the multicast fix.

1 Like

may i know what's the correct set up for this?

           CPU0       CPU1       CPU2       CPU3
  9:          0          0          0          0     GIC-0  39 Level     arch_mem_timer
 13:    1289447     592748     639951     614502     GIC-0  20 Level     arch_timer
 16:          2          0          0          0     GIC-0 354 Edge      smp2p
 17:          0          0          0          0     GIC-0 216 Level     4a9000.thermal-sensor
 18:          0          0          0          0     GIC-0 239 Level     bam_dma
 21:          0          0          0          0     GIC-0 270 Level     bam_dma
 22:          4          0          0          0     GIC-0 340 Level     msm_serial0
 23:      64576          0          0          0     GIC-0 178 Level     bam_dma
 24:          0          0          0          0     GIC-0  35 Edge      wdt_bark
 25:          0          0          0          0     GIC-0 357 Edge      q6v5 wdog
 29:          5          0          0          0     GIC-0 348 Edge      ce0
 30:     442099          0          0          0     GIC-0 347 Edge      ce1
 31:      83698          0          0          0     GIC-0 346 Edge      ce2
 32:       4779          0          0          0     GIC-0 343 Edge      ce3
 34:          0          0          0          0     GIC-0 443 Edge      ce5
 36:       5778          0          0          0     GIC-0  72 Edge      ce7
 38:          0          0          0          0     GIC-0 334 Edge      ce9
 39:          1          0          0          0     GIC-0 333 Edge      ce10
 40:          0          0          0          0     GIC-0  69 Edge      ce11
 47:          0          0          0          0     GIC-0 323 Edge      reo2ost-exception
 48:      14885          0          0          0     GIC-0 322 Edge      wbm2host-rx-release
 49:         38          0          0          0     GIC-0 321 Edge      reo2host-status
 50:      81417          0          0          0     GIC-0 320 Edge      reo2host-destination-ring4
 51:      76963          0          0          0     GIC-0 271 Edge      reo2host-destination-ring3
 52:      70019          0          0          0     GIC-0 268 Edge      reo2host-destination-ring2
 53:      83511          0          0          0     GIC-0 267 Edge      reo2host-destination-ring1
 57:      59682          0          0          0     GIC-0 263 Edge      ppdu-end-interrupts-mac3
 58:          0          0          0          0     GIC-0 262 Edge      ppdu-end-interrupts-mac2
 59:     407674          0          0          0     GIC-0 261 Edge      ppdu-end-interrupts-mac1
 60:          1          0          0          0     GIC-0 260 Edge      rxdma2host-monitor-status-ring-mac3
 61:          0          0          0          0     GIC-0 256 Edge      rxdma2host-monitor-status-ring-mac2
 62:          1          0          0          0     GIC-0 255 Edge      rxdma2host-monitor-status-ring-mac1
 63:          1          0          0          0     GIC-0 235 Edge      host2rxdma-host-buf-ring-mac3
 64:          0          0          0          0     GIC-0 215 Edge      host2rxdma-host-buf-ring-mac2
 65:          0          0          0          0     GIC-0 212 Edge      host2rxdma-host-buf-ring-mac1
 66:          0          0          0          0     GIC-0 211 Edge      rxdma2host-destination-ring-mac3
 67:          0          0          0          0     GIC-0 210 Edge      rxdma2host-destination-ring-mac2
 68:          0          0          0          0     GIC-0 209 Edge      rxdma2host-destination-ring-mac1
 73:       2311          0          0          0     GIC-0 191 Edge      wbm2host-tx-completions-ring3
 74:       3342          0          0          0     GIC-0 190 Edge      wbm2host-tx-completions-ring2
 75:     110040          0          0          0     GIC-0 189 Edge      wbm2host-tx-completions-ring1
 77:         34          0          0          0     GIC-0  47 Edge      cpr3
 78:     716599          0          0          0     GIC-0 377 Level     edma_txcmpl
 79:          0          0          0          0     GIC-0 385 Level     edma_rxfill
 80:     544083          0          0          0     GIC-0 393 Level     edma_rxdesc
 81:          0          0          0          0     GIC-0 376 Level     edma_misc
 82:          0          0          0          0  pmic_arb 51380237 Edge      pm-adc5
 83:          0          0          0          0     smp2p   0 Edge      q6v5 fatal
 84:          1          0          0          0     smp2p   1 Edge      q6v5 ready
 85:          0          0          0          0     smp2p   2 Edge      q6v5 handover
 86:          0          0          0          0     smp2p   3 Edge      q6v5 stop
 87:          0          0          0          0   msmgpio  34 Edge      keys
 88:          0          0          0          0   msmgpio  63 Edge      keys
 89:          0          0          0          0     GIC-0 172 Level     xhci-hcd:usb1
 90:         63          0          0          0     GIC-0 353 Edge      glink-native
IPI0:      2643       6097       6060       6622       Rescheduling interrupts
IPI1:     43171     372847     306241     285390       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:      1719        813        809        752       IRQ work interrupts
IPI6:         0          0          0          0       CPU wake-up interrupts

This is very good intel. Yes, I did see that as well when I executed the cold via ssh.

Thank!!

For irq balance also see:

the irqbalance utility has a blacklist maybe we can integrate a blacklist into it for IPQ8072?

1 Like

See discussion in

4 Likes

Failed check-sdata-in-driver check

Still an issue

so a kernel bug that dates back to march, has Dynalink acknowledge there is a bug and working on a fix? or unknown?

so based on info posted by SiXX, would it be better to use this revised script?

#!/bin/sh /etc/rc.common

# Version 2023-05-29

START=13
USE_PROCD=1
AFFINITY_MIN=2
AFFINITY_MAX=8
AFFINITY_ALL="$(printf %x $(( AFFINITY_MAX * 2 - 1 )))"

# Define stable IRQs as space-separated list
STABLE_IRQS="66 67 68 69 47 52 55"

set_affinities() {
  local callback="$1" irq desc ret=0
  sed -nre 's!^[[:space:]]*([0-9]+):[[:space:]]+.*[[:space:]]GIC-0[[:space:]]+[0-9]+[[:space:]]+(Level|Edge)[[:space:]]+(.+)$!\1 \3! p' /proc/interrupts | \
  while read irq desc
  do
    if echo "$STABLE_IRQS" | grep -q -w "$irq"; then
      "$callback" "/proc/irq/$irq/smp_affinity" || ret=1
    fi
  done
  return $ret
}

set_affinity_per_cpu() {
  local procfile="$1" ret=0
  echo "$AFFINITY" > "$procfile" || ret=$?
  if [ $AFFINITY -ge $AFFINITY_MAX ]
  then
    AFFINITY=$AFFINITY_MIN
  else
    AFFINITY=$(( AFFINITY * 2 ))
  fi
  return $ret
}

set_affinity_shared() {
  local procfile="$1" ret=0
  echo "$AFFINITY_ALL" > "$procfile" || ret=$?
  return $ret
}

start_service() {
  reload_service
}

reload_service() {
  AFFINITY=$AFFINITY_MIN
  set_affinities set_affinity_per_cpu
}

stop_service() {
  set_affinities set_affinity_shared
}





Same end result, just different way of achieving it. One is through Luci Startup or SSH command (mine)... the other is a script.

1 Like

Why would Dynalink care about a bug in a 3rd party fw ?

And the bug is in the underlying Qualcomm firmware blob.

2 Likes

I was under the impression the fw in this respect is closed source so if it impacts openwrt it would also impact oem fw.

They might have sw based workarounds, that's what closed source would imply, we wouldn't know.

1 Like

Would be interesting to hear feedback from ofw users of recent fw in this regard.

Initially I had thought that the crash bug could be heat related, I've experienced a similar situation with a gl-inet travel router.

I checked sensors and tempeture seemed okay, could it be sensors isn't picking up all sensors? I wonder if throttling is missing.

Anyone have the gusto to run one of these bad boys gutted with a active fan pointing at it to test?

I wonder if active cooling would prevent wifi crashing.

No connection to heat,
as the crash always happens when a wifi client leaves the router...

1 Like

I haven't had any WiFi crashes since rc4.... zero. And I have multiple SSID's on 2.4Ghz.

The crashes happen for me on the 5 GHZ radio where I have multiple SSIDs, some of them using also 802.11r

2 Likes