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]