Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

TP-Link TL-WR1043ND uszkodzona pamięć?

rafels 21 Jun 2021 22:08 405 9
GoodRam konkurs
  • #1
    rafels
    Level 24  
    Cześć

    Od jakiegoś czasu router TL-WR1043ND (fw Gargoyle) pracował coraz mniej stabilnie, coraz częściej rozłączał klientów. Aż ostatnio nie dało się do niego podłączyć. Okazało się, że restartuje się cyklicznie co kilka minut.
    Dążąc do rozwiązania problemu wymieniłem zasilacz, nie pomogło.
    Następnie wymieniłem wszystkie elektrolity, objawy dalej te same, cykliczny restart.
    Chcąc zdiagnozować problem wlutowałem goldpiny i podłączyłem się do konsoli szeregowej. System bootuje się bez błędów. Jednak po około 120 sekundach następuje kernel panic i następnie restart.
    Przyglądając się kolejnym kernel panic-om widać, że problem zawsze wychodzi podczas funkcji związanych obsługą pamięci RAM. Sugeruje mi to, że być może uszkodzona jest kość pamięci Zentel A3R12E40CBF.

    Problem nie występuje jeżeli uruchomię system w failsafe mode. Pomyślałem, że przeprowadzę diagnostykę i włączę memtest, ale konsola nie reaguje na znaki wysyłane przez serial.
    Teraz przyszło mi do głowy, że może uda mi się wbić przez ethernet na ssh w tym trybie. Jutro to sprawdzę.

    Czy ktoś miał podobne objawy? Co mogę jeszcze zrobić?

    Poniżej kilka kolejnych kernel panic-ów.

    Code:

    [   31.760000] br-lan: port 2(wlan0) entered forwarding state
    ^@^@^@^@[   50.390000] random: nonblocking pool is initialized
    ^@^@^@^@[  108.380000] Unhandled kernel unaligned access[#1]:
    [  108.380000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.18.75 #13
    [  108.380000] task: 803888b0 ti: 80382000 task.ti: 80382000
    [  108.380000] $ 0   : 00000000 00000000 22010101 00000001
    [  108.380000] $ 4   : 80406ccc 00000020 81082060 00000400
    [  108.380000] $ 8   : 00000000 80064f90 00000000 00000000
    [  108.380000] $12   : 00350002 82cb601a 00000000 c0a8006b
    [  108.380000] $16   : 83802d00 22010101 00000020 82f6c800
    [  108.380000] $20   : c0b169e0 82fc29f8 00000029 8304ee00
    [  108.380000] $24   : 00000000 831778f0                 
    [  108.380000] $28   : 80382000 80383890 82446480 800f96bc
    [  108.380000] Hi    : 00000224
    [  108.380000] Lo    : 00000000
    [  108.380000] epc   : 800f96fc __kmalloc+0x7c/0x11c
    [  108.380000]     Not tainted
    [  108.380000] ra    : 800f96bc __kmalloc+0x3c/0x11c
    [  108.380000] Status: 1100fc03 KERNEL EXL IE
    [  108.380000] Cause : 00800010
    [  108.380000] BadVA : 22010101
    [  108.380000] PrId  : 00019750 (MIPS 74Kc)
    [  108.380000] Modules linked in: ath9k ath9k_common qcserial pppoe ppp_async option iptable_nat cdc_mbim ath9kh
    [  108.380000] Process swapper (pid: 0, threadinfo=80382000, task=803888b0, tls=00000000)
    [  108.380000] Stack : 82c18b20 82ee30a0 83ae7474 8009f1d4 c0b168e0 82449cb0 82cb6000 8317d8a4
              803a1b80 82449cb0 803a1b80 00000000 82449cb0 83177bf4 c0b16820 82cb6000
              82fc29dc 82446480 c0b168c0 82f20000 832aa654 8108526c 82446480 832a87c8
              82fc1e1c c0bd8de8 00000002 00000000 803a1f58 8317ad8c c0a80001 00000000
              00000000 00000000 00350002 c0a8006b 8317ded0 c0b168e0 82f20000 00000000
              ...
    [  108.380000] Call Trace:
    [  108.380000] [<800f96fc>] __kmalloc+0x7c/0x11c
    [  108.380000] [<800f96bc>] __kmalloc+0x3c/0x11c
    [  108.380000]
    [  108.380000]
    Code: 00408821  8e020014  02221021 <8c430000> 41666000  30c60001  000000c0  8e020000  8c450000
    [  108.740000] ---[ end trace 52ff5e9da5a42cfb ]---
    [  108.750000] Kernel panic - not syncing: Fatal exception in interrupt
    [  108.750000] Rebooting in 3 seconds..



    ==============================================

    ^@[  115.350000] CPU 0 Unable to handle kernel paging request at virtual address 00000140, epc == 8027741c, ra 4
    [  115.370000] Oops[#1]:
    [  115.370000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.18.75 #13
    [  115.370000] task: 803888b0 ti: 80382000 task.ti: 80382000
    [  115.370000] $ 0   : 00000000 00000001 00000000 80380000
    [  115.370000] $ 4   : 82f53600 80363490 00000000 000190f4
    [  115.370000] $ 8   : 00000000 00000000 00000000 00000000
    [  115.370000] $12   : ffffffff cab08b11 00000000 0a188b11
    [  115.370000] $16   : 8382fb34 803839e8 82f53600 8382f980
    [  115.370000] $20   : 803839fc 803839c8 82f53700 802ab434
    [  115.370000] $24   : 00000000 00000000                 
    [  115.370000] $28   : 80382000 803838e8 000000c0 8027f7c4
    [  115.370000] Hi    : 00000000
    [  115.370000] Lo    : 000003e8
    [  115.370000] epc   : 8027741c ipv4_mtu+0x3c/0x80
    [  115.370000]     Not tainted
    [  115.370000] ra    : 8027f7c4 ip_setup_cork+0xd8/0x138
    [  115.370000] Status: 1100fc03 KERNEL EXL IE
    [  115.370000] Cause : 00800008
    [  115.370000] BadVA : 00000140
    [  115.370000] PrId  : 00019750 (MIPS 74Kc)
    [  115.370000] Modules linked in: ath9k ath9k_common qcserial pppoe ppp_async option iptable_nat cdc_mbim ath9kh
    [  115.370000] Process swapper (pid: 0, threadinfo=80382000, task=803888b0, tls=00000000)
    [  115.370000] Stack : 00000000 00000000 000000c0 80277e3c 8382f980 8382fb34 8382fa20 00000040
              00000008 80280da8 82f53600 803839c8 803a0000 802ab6f4 83815a00 83bdde00
              838af180 80263230 00000000 800911b0 00000000 803a1b80 8382f980 82f53700
              00000000 803839c8 00000000 8382f980 00000000 802ab340 00000000 802ab8f0
              00000000 0a188b11 0000003c 00000008 803839e8 803839fc 00000040 82f53700
              ...
    [  115.370000] Call Trace:
    [  115.370000] [<8027741c>] ipv4_mtu+0x3c/0x80
    [  115.370000] [<8027f7c4>] ip_setup_cork+0xd8/0x138
    [  115.370000] [<80280da8>] ip_append_data+0x6c/0xf4
    [  115.370000] [<802ab340>] icmp_push_reply+0x6c/0x160
    [  115.370000] [<802abc84>] icmp_send+0x358/0x3a8
    [  115.370000] [<802767f4>] ip_error+0x140/0x1d4
    [  115.370000] [<8024926c>] __netif_receive_skb_core+0x630/0x6b0
    [  115.370000] [<802493c4>] netif_receive_skb_internal+0x60/0x70
    [  115.370000] [<802e18a0>] br_handle_frame+0x330/0x3ac
    [  115.370000] [<802490f8>] __netif_receive_skb_core+0x4bc/0x6b0
    [  115.370000] [<802493c4>] netif_receive_skb_internal+0x60/0x70
    [  115.370000] [<82d1e71c>] ieee80211_attach_ack_skb+0xfb4/0x1878 [mac80211]
    [  115.370000]
    [  115.370000]
    Code: 14400011  00000000  8c82000c <8c430140> 8ca20000  30420004  10400007  00000000  9082005b
    [  115.780000] ---[ end trace b2009f980c7a4d03 ]---
    [  115.790000] Kernel panic - not syncing: Fatal exception in interrupt
    [  115.790000] Rebooting in 3 seconds..



    ==================================

    [  114.640000] Kernel bug detected[#1]:
    [  114.640000] CPU: 0 PID: 3 Comm: ksoftirqd/0 Not tainted 3.18.75 #13
    [  114.640000] task: 838289b0 ti: 8383a000 task.ti: 8383a000
    [  114.640000] $ 0   : 00000000 00000000 8105ea80 00000001
    [  114.640000] $ 4   : 00000000 00000100 82f54680 00000007
    [  114.640000] $ 8   : 00000000 80387ed0 00000020 00010040
    [  114.640000] $12   : 0000001b 7ffbccd8 00000000 00000000
    [  114.640000] $16   : 82f54600 800aa154 0000000a 0000000a
    [  114.640000] $20   : 00000100 803e0000 803e3918 00000009
    [  114.640000] $24   : 00000000 8006e044                 
    [  114.640000] $28   : 8383a000 8383be18 00000024 800aa144
    [  114.640000] Hi    : 00000001
    [  114.640000] Lo    : 00000001
    [  114.640000] epc   : 800f8e48 kfree+0x64/0x11c
    [  114.640000]     Not tainted
    [  114.640000] ra    : 800aa144 __rcu_process_callbacks+0xbc/0xf8
    [  114.640000] Status: 1100fc03 KERNEL EXL IE
    [  114.640000] Cause : 00800034
    [  114.640000] PrId  : 00019750 (MIPS 74Kc)
    [  114.640000] Modules linked in: ath9k ath9k_common qcserial pppoe ppp_async option iptable_nat cdc_mbim ath9kh
    [  114.640000] Process ksoftirqd/0 (pid: 3, threadinfo=8383a000, task=838289b0, tls=00000000)
    [  114.640000] Stack : 80388480 80390000 00000003 802473dc 80387370 00000200 803e393c 800aa194
              838289e0 80387370 80380000 8382ba50 80387370 80082c30 838289b0 800994ac
              00000000 838289b0 838289b0 803913f0 04208040 ffffb799 83814b80 803913f0
              00000001 00000002 80098c74 80380000 80387370 80395124 00000000 80082d90
              80098c74 80380000 80387370 80395124 00000000 80098da8 83814c00 83814b80
              ...
    [  114.640000] Call Trace:
    [  114.640000] [<800f8e48>] kfree+0x64/0x11c
    [  114.640000] [<800aa144>] __rcu_process_callbacks+0xbc/0xf8
    [  114.640000]
    [  114.640000]
    Code: 8c430000  3063c000  2c630001 <00030336> 8c430000  7c630380  10600002  00002821  8c450038
    [  115.000000] ---[ end trace c82ab7e8fb8a3967 ]---
    [  115.010000] Kernel panic - not syncing: Fatal exception in interrupt
    [  115.010000] Rebooting in 3 seconds..



    =============================

    [  114.780000] Kernel bug detected[#1]:
    [  114.780000] CPU: 0 PID: 3 Comm: ksoftirqd/0 Not tainted 3.18.75 #13
    [  114.780000] task: 838289b0 ti: 8383a000 task.ti: 8383a000
    [  114.780000] $ 0   : 00000000 00000000 8105e760 00000001
    [  114.780000] $ 4   : 00000000 00000100 82f3b500 00000007
    [  114.780000] $ 8   : 00000000 80387ed0 00000020 00010040
    [  114.780000] $12   : 0000001b 7fe73a98 00000000 00000000
    [  114.780000] $16   : 82f3b200 800aa154 0000000a 0000000a
    [  114.780000] $20   : 00000100 803e0000 803e3918 00000009
    [  114.780000] $24   : 00000000 8006e044                 
    [  114.780000] $28   : 8383a000 8383be18 00000024 800aa144
    [  114.780000] Hi    : 00000001
    [  114.780000] Lo    : 00000001
    [  114.780000] epc   : 800f8e48 kfree+0x64/0x11c
    [  114.780000]     Not tainted
    [  114.780000] ra    : 800aa144 __rcu_process_callbacks+0xbc/0xf8
    [  114.780000] Status: 1100fc03 KERNEL EXL IE
    [  114.780000] Cause : 00800034
    [  114.780000] PrId  : 00019750 (MIPS 74Kc)
    [  114.780000] Modules linked in: ath9k ath9k_common qcserial pppoe ppp_async option iptable_nat cdc_mbim ath9kh
    [  114.780000] Process ksoftirqd/0 (pid: 3, threadinfo=8383a000, task=838289b0, tls=00000000)
    [  114.780000] Stack : 80388480 80390000 00000003 802473dc 8383be28 00000200 803e393c 800aa194
              838289e0 80387370 80380000 8382ba50 80387370 80082c30 838289b0 800994ac
              00000000 838289b0 838289b0 803913f0 04208040 ffffb7a7 83814b80 803913f0
              00000001 00000002 80098c74 80380000 80387370 80395124 00000000 80082d90
              80098c74 80380000 80387370 80395124 00000000 80098da8 83814c00 83814b80
              ...
    [  114.780000] Call Trace:
    [  114.780000] [<800f8e48>] kfree+0x64/0x11c
    [  114.780000] [<800aa144>] __rcu_process_callbacks+0xbc/0xf8
    [  114.780000]
    [  114.780000]
    Code: 8c430000  3063c000  2c630001 <00030336> 8c430000  7c630380  10600002  00002821  8c450038
    [  115.140000] ---[ end trace 1102798593b11392 ]---
    [  115.150000] Kernel panic - not syncing: Fatal exception in interrupt
    [  115.150000] Rebooting in 3 seconds..
  • GoodRam konkurs
  • #2
    rafels
    Level 24  
    Udało mi się podłączyć przez ssh w powersafe mode.
    Przez scp przerzuciłem memtester, testy nie wykazały błędów a kernel nie wywalił się. Czyli może to nie pamięć. Poniżej komendy z konsoli.

    Trzeba by chyba teraz porównać czy parametry pracy (taktowania) są takie same jak w normal mode. Poszukam też jakiegoś cpu stress test dla tej architektury, może to SoC siada.

    Code:

    root@(none):/tmp# free
                 total         used         free       shared      buffers
    Mem:         60980        15148        45832           40         2384
    -/+ buffers:              12764        48216
    Swap:            0            0            0


    root@(none):/tmp# ./memtester 45832K 2
    memtester version 4.1.3 (32-bit)
    Copyright (C) 2010 Charles Cazabon.
    Licensed under the GNU General Public License version 2 (only).

    pagesize is 4096
    pagesizemask is 0xfffff000
    want 44MB (46931968 bytes)
    got  44MB (46931968 bytes), trying mlock ...locked.
    Loop 1/2:
      Stuck Address       : ok         
      Random Value        : ok
      Compare XOR         : ok
      Compare SUB         : ok
      Compare MUL         : ok
      Compare DIV         : ok
      Compare OR          : ok
      Compare AND         : ok
      Sequential Increment: ok
      Solid Bits          : ok         
      Block Sequential    : ok         
      Checkerboard        : ok         
      Bit Spread          : ok         
      Bit Flip            : ok         
      Walking Ones        : ok         
      Walking Zeroes      : ok         

    Loop 2/2:
      Stuck Address       : ok         
      Random Value        : ok
      Compare XOR         : ok
      Compare SUB         : ok
      Compare MUL         : ok
      Compare DIV         : ok
      Compare OR          : ok
      Compare AND         : ok
      Sequential Increment: ok
      Solid Bits          : ok         
      Block Sequential    : ok         
      Checkerboard        : ok         
      Bit Spread          : ok         
      Bit Flip            : ok         
      Walking Ones        : ok         
      Walking Zeroes      : ok         

    Done.
  • GoodRam konkurs
  • #4
    rafels
    Level 24  
    Flashowanie zostawiam na koniec. Póki co chcę spróbować zdiagnozować problem.
    Poza tym kupiłem już nowy router.

    W międzyczasie uruchomiłem stress test. 10 minut pracy nie wywaliło kernela.

    Teraz muszę sprawdzić czy dla failsafe mode jest taka same częstotliwości pracy jak dla normal mode. W /proc/cpuinfo nie ma tej informacji. Pewnie da się obliczyć z bogoMIPS ale nie wiem jak to zrobić dla tej architektury. Pewnie muszę sprawdzić w device tree. Ale to w następnym podejściu do routera.


    --- edit

    Zdążyłem jeszcze sprawdzić że w normal mode jest tyle samo bogoMIPSów. Czyli wnioskuje że częstotliwość cpu jest ta sama w failsafe mode.
    Czyli nadal nie wiem co jest przyczyną. FW routera nie był ostatnio zmieniany. Kiedyś chodził stabilnie i stopniowo się destabilizował, aż do obecnych restarów.


    Code:

    root@(none):/tmp# ./stress --cpu 3 --io 8 --vm-bytes 10M --vm 4 --timeout 10m
    stress: info: [528] dispatching hogs: 3 cpu, 8 io, 4 vm, 0 hdd
    stress: info: [528] successful run completed in 600s

    root@(none):/tmp# cat /proc/cpuinfo
    system type      : Qualcomm Atheros QCA9558 ver 1 rev 0
    machine         : TP-LINK TL-WR1043ND v2
    processor      : 0
    cpu model      : MIPS 74Kc V5.0
    BogoMIPS      : 358.80
    wait instruction   : yes
    microsecond timers   : yes
    tlb_entries      : 32
    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 dsp2
    shadow register sets   : 1
    kscratch registers   : 0
    package         : 0
    core         : 0
    VCED exceptions      : not available
    VCEI exceptions      : not available
  • #5
    Interesant
    Level 33  
    ...
    Może zimne luty??
    Może gdzieś dostaje temperatury i nie styka...
  • #6
    rafels
    Level 24  
    Może tak być. Choć podczas stres testu układ też się nagrzewa a nic sienie dzieje. Poza tym sam reballingu samym hotem nie zrobię, nie mam sit. A do serwisu oddawać się nie opłaca, to już dość zabytkowy AP.

    W trybie failsafe nie uruchamia się radio. Może uruchomienie WiFi powoduje takie efekty. Sprawdzę czy się da uruchomić WiFi w failsafe mode i co się stanie.
  • #7
    rafels
    Level 24  
    Nie udało mi się włączyć radia w failsafe mode. Masa modułów jądra jest nie załadowana w tym trybie.

    Ostatecznie przywróciłem ustawienia fabryczne dla gargoyle i na razie kernel paniców nie widzę. Pogrzałem go mocno stressem i nic. Poobserwuję teraz uptime czy się nie resetuje. Później przywrócę mu konfigurację roboczą z backapu. Zobaczymy jak się zachowa gdy nagle podłączy się masa klientów przez WiFi.
  • #8
    rafels
    Level 24  
    Urządzenie pracuje bez restartu od ponad 2 dni. Podłączenie kilku klientów bezprzewodowych również nic nie popsuło. Nie mam czasu i motywacji na dalsze większe testy, bo zamiast niego pracuje już nowszy router.

    Nie mam pojęcia co mogło spowodować takie dziwne, narastające stopniowo, objawy. Wszystko wskazywało na hardware. A tu przywrócenie ustawień fabrycznych pomogło. Czyżby psuła się pamięć w której trzymane są ustawienia i zmiana zapisanych bitów powodowała błędy kernela?
  • #9
    Interesant
    Level 33  
    ...
    rafels wrote:
    Urządzenie pracuje bez restartu od ponad 2 dni. Podłączenie kilku klientów bezprzewodowych również nic nie popsuło. Nie mam czasu i motywacji na dalsze większe testy, bo zamiast niego pracuje już nowszy router.

    Nie mam pojęcia co mogło spowodować takie dziwne, narastające stopniowo, objawy. Wszystko wskazywało na hardware. A tu przywrócenie ustawień fabrycznych pomogło. Czyżby psuła się pamięć w której trzymane są ustawienia i zmiana zapisanych bitów powodowała błędy kernela?

    Może zapychała się już pamięć cache od logów...
  • #10
    rafels
    Level 24  
    Logi są w RAMie w buforze cyklicznym o stałym rozmiarze. Czyszczone po każdym restarcie.