tunefs commented on PR #18405:
URL: https://github.com/apache/nuttx/pull/18405#issuecomment-3917785523

   > Hi! Do you have a test log you could include for this please?
   
   The original version with LPSPI2 DMA crashes due to memory corruption.
   ```
   nsh> adis16470 start -S
   INFO  [adis16470] Serial Number: 0x0, Firmware revision: 0x34 Date: Y 25 DM 0
   adis16470 #0 on SPI bus 2 (external, equal to '-b 1')
   nsh> imxrt_usagefault: PANIC!!! Usage fault received: 00020000
   up_assert: Assertion failed at file:chip/imxrt_irq.c line: 272 task: wq:SPI2
   arm_registerdump: R0: 00000001 R1: 20284824 R2: 00000000  R3: 00000001
   arm_registerdump: R4: 00000000 R5: 00000000 R6: 00000000  FP: 00000000
   arm_registerdump: R8: 00000000 SB: 00000000 SL: 00000000 R11: 00000000
   arm_registerdump: IP: 000000f0 SP: 20284878 LR: 0001660f  PC: 00000000
   arm_registerdump: xPSR: 20000000 BASEPRI: 000000f0 CONTROL: 00000000
   arm_registerdump: EXC_RETURN: ffffffe9
   arm_dump_stack: IRQ Stack:
   arm_dump_stack: sp:     202454b8
   arm_dump_stack:   base: 20244d00
   arm_dump_stack:   size: 00000800
   arm_stackdump: 202454a0: 202454b8 300634c7 00000001 00000000 00000000 
30059e81 00000000 20245500
   arm_stackdump: 202454c0: 00000006 00000000 00000000 00000000 00000000 
30059d97 3016a0f7 300593d5
   arm_stackdump: 202454e0: 300593ad 00000f11 00000000 00000063 00000000 
00000000 00000000 000000f9
   arm_dump_stack: User Stack:
   arm_dump_stack: sp:     20284878
   arm_dump_stack:   base: 20283fc8
   arm_dump_stack:   size: 00000940
   arm_stackdump: 20284860: 469c1800 3b64c388 00000000 bb64c388 20000010 
00000000 00000000 00000000
   arm_stackdump: 20284880: 20284894 202569e0 202519ac 30162b55 00000000 
2025f66c 000000f0 20284950
   arm_stackdump: 202848a0: 20284950 00010001 00000000 00010001 00000000 
301ca7cc 20284950 00000000
   arm_stackdump: 202848c0: 00000001 00000000 ffffffff 00000001 00000000 
00000000 00000000 00000000
   arm_stackdump: 202848e0: 00000000 2027e820 00000000 00000000 00000000 
30065267 3006525f 300728f5
   arm_showtasks:    PID    PRI     STACK      USED   FILLED    COMMAND
   arm_showtasks:   ----   ----      2048       408    19.9%    irq
   arm_dump_task:      0      0      2024       388    19.1%    Idle Task
   arm_dump_task:      1    249      1744       284    16.2%    hpwork 
0x20240480
   arm_dump_task:      2     50      1976       348    17.6%    lpwork 
0x2024046c
   arm_dump_task:      3    100      2896      1812    62.5%    nsh_main
   arm_dump_task:      4    255      1232       604    49.0%    wq:manager
   arm_dump_task:      5    205      3472       872    25.1%    wq:lp_default 
0x301c9708
   arm_dump_task:      6    100      1984       532    26.8%    Telnet daemon 
0x20258a70
   arm_dump_task:      7     49      2024       668    33.0%    netinit 0
   arm_dump_task:     72    237      2776       812    29.2%    wq:hp_default 
0x301866f4
   arm_dump_task:    233    255      3120      1344    43.0%    wq:rate_ctrl 
0x301c4ac0
   arm_dump_task:     74    253      2368      1828    77.1%    wq:SPI1 
0x301ca7d4
   arm_dump_task:    459    140      3192      1360    42.6%    commander start
   arm_dump_task:    236    241      5976      3796    63.5%    wq:INS0 
0x301a2404
   arm_dump_task:     77    245      2312       732    31.6%    wq:I2C2 
0x301ca794
   arm_dump_task:    624     60      1144       380    33.2%    log_writer_file 
0x20278b50
   arm_dump_task:    626    100      3136      1680    53.5%    mavlink_if1 
mavlink start -d /dev/ttyACM0 -m 2
   arm_dump_task:    627    175      6080      2020    33.2%    mavlink_rcv_if1 
0x2027fd48
   arm_dump_task:    533    231      1704       656    38.4%    wq:ttyS3 
0x301ca73c
   arm_dump_task:    502    100      3048      1732    56.8%    mavlink_if0 
mavlink start -d /dev/ttyS4 -b p:SER_TEL1_BAUD -m p:MAV_0_MODE
   arm_dump_task:    503    175      6080      2020    33.2%    mavlink_rcv_if0 
0x20270888
   arm_dump_task:    601    230      4016      3068    76.3%    logger start -b 
32 -t 
   arm_dump_task:    634    252      2368       812    34.2%    wq:SPI2 
0x301ca7cc
   arm_dump_task:     59     90      1376      1052    76.4%    dataman
   arm_dump_task:    542    105      2136       796    37.2%    nedo_navigator 
start
   arm_dump_task:    223    242      2216      1040    46.9%    
wq:nav_and_controllers 0x301a240c
   ```
   
   Disabling DMA in the original version does not crash, but the CPU usage of 
wq:SPI2 becomes high. (about 40%)
   ```
   nsh> top
    PID COMMAND                   CPU(ms) CPU(%)  USED/STACK PRIO(BASE) STATE FD
      0 Idle Task                   44327 39.981   200/ 2048   0 (  0)  READY  3
      1 hpwork                          0  0.000   284/ 1744 249 (249)  w:sem  3
      2 lpwork                          0  0.000   324/ 1976  50 ( 50)  w:sem  3
      3 nsh_main                        0  0.000  1908/ 2896 100 (100)  w:sem  3
      4 wq:manager                      0  0.000   556/ 1232 255 (255)  w:sem  5
      5 wq:lp_default                   6  0.098   872/ 3472 205 (205)  w:sem  5
      6 Telnet daemon                   0  0.000   532/ 1984 100 (100)  w:sem  4
      7 netinit                         0  0.000   668/ 2024  49 ( 49)  w:sem  3
    624 log_writer_file                 0  0.000   380/ 1144  60 ( 60)  w:sem  3
     59 dataman                         0  0.001  1052/ 1376  90 ( 90)  w:sem  5
     72 wq:hp_default                  41  0.583   800/ 2776 237 (237)  w:sem  5
     74 wq:SPI1                        97  1.374  1884/ 2368 253 (253)  w:sem  5
     77 wq:I2C2                         6  0.097   732/ 2312 245 (245)  w:sem  5
    223 wq:nav_and_controllers         51  0.726  1040/ 2216 242 (242)  w:sem  5
    233 wq:rate_ctrl                   36  0.508  1344/ 3120 255 (255)  w:sem  5
    236 wq:INS0                       364  5.137  3820/ 5976 241 (241)  w:sem  5
    459 commander                      43  0.600  1516/ 3192 140 (140)  w:sig  5
    502 mavlink_if0                   237  3.506  1860/ 3048 100 (100)  w:sig  5
    503 mavlink_rcv_if0                 6  0.092  2020/ 6080 175 (175)  w:sem  5
    533 wq:ttyS3                       23  0.331   740/ 1704 231 (231)  w:sem  5
    542 nedo_navigator                  3  0.046   772/ 2136 105 (105)  w:sem  7
    601 logger                          8  0.114  3068/ 4016 230 (230)  w:sem  3
    636 top                            61  0.884  2100/ 4056 237 (237)  RUN    3
    626 mavlink_if1                   209  2.806  1680/ 3136 100 (100)  READY  5
    627 mavlink_rcv_if1                 5  0.075  2020/ 6080 175 (175)  w:sem  5
    634 wq:SPI2                      3002 42.344   812/ 2368 252 (252)  w:sem  5
   ```
   
   The fixed version with DMA does not crash and has low CPU usage.
   ```
   nsh> top
    PID COMMAND                   CPU(ms) CPU(%)  USED/STACK PRIO(BASE) STATE FD
      0 Idle Task                   34720 78.662   200/ 2048   0 (  0)  READY  3
      1 hpwork                          0  0.000   284/ 1744 249 (249)  w:sem  3
      2 lpwork                          0  0.000   308/ 1976  50 ( 50)  w:sem  3
      3 nsh_main                        0  0.000  1836/ 2896 100 (100)  w:sem  3
      4 wq:manager                      0  0.000   556/ 1232 255 (255)  w:sem  5
      5 wq:lp_default                   8  0.102  1028/ 3472 205 (205)  w:sem  5
      6 Telnet daemon                   0  0.000   532/ 1984 100 (100)  w:sem  4
      7 netinit                         0  0.000   668/ 2024  49 ( 49)  w:sem  3
    624 log_writer_file                 0  0.000   380/ 1144  60 ( 60)  w:sem  3
     59 dataman                         0  0.001  1052/ 1376  90 ( 90)  w:sem  5
     72 wq:hp_default                  49  0.579   800/ 2776 237 (237)  w:sem  5
     74 wq:SPI1                       113  1.356  1736/ 2368 253 (253)  w:sem  5
     77 wq:I2C2                         8  0.095   732/ 2312 245 (245)  w:sem  5
    223 wq:nav_and_controllers         60  0.726  1040/ 2216 242 (242)  w:sem  5
    233 wq:rate_ctrl                   41  0.490  1344/ 3120 255 (255)  w:sem  5
    236 wq:INS0                       463  5.978  3820/ 5976 241 (241)  w:sem  5
    459 commander                      51  0.605  1548/ 3192 140 (140)  w:sig  5
    502 mavlink_if0                   239  2.848  1908/ 3048 100 (100)  w:sig  5
    503 mavlink_rcv_if0                 7  0.084  2020/ 6080 175 (175)  w:sem  5
    533 wq:ttyS3                       28  0.337   740/ 1704 231 (231)  w:sem  5
    542 nedo_navigator                  4  0.047   752/ 2136 105 (105)  w:sem  7
    601 logger                          9  0.118  3068/ 4016 230 (230)  w:sem  3
    636 top                            75  0.923  2100/ 4056 237 (237)  RUN    3
    626 mavlink_if1                   287  3.448  1680/ 3136 100 (100)  w:sig  5
    627 mavlink_rcv_if1                 6  0.082  2020/ 6080 175 (175)  w:sem  5
    634 wq:SPI2                       172  2.554   812/ 2368 252 (252)  w:sem  5
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to