msli-dev commented on PR #20381:
URL: https://github.com/apache/nuttx/pull/20381#issuecomment-5909517869

   Hardware test update: MicoAir H743 V2, SD card connected to SDMMC1.
   
   The author ran the following tests on the PX4 port of this PR. The prepared 
firmware target was `micoair_h743-v2_default`, based on PX4 `ea495a418e` and 
its NuttX `030417d09b` (the console reports NuttX 12.12.0), with this PR's 
changes through `51557742ec` adapted to the older `STM32H7_*` configuration 
names. This is hardware evidence from that port, rather than a standalone 
upstream NuttX firmware run.
   
   The prepared build enables IDMA, a 4096-byte bounce buffer (8 × 512), 
`MMCSD_MULTIBLOCK_LIMIT=0`, and D-cache write-back. Its linked bounce buffer is 
at `0x2400eea0` in AXI SRAM, size `0x1000`.
   
   | Command | Average write, KB/s | Average read + verify, KB/s | Observed 
result |
   | --- | ---: | ---: | --- |
   | `sd_bench -v -b 4096 -r 3 -d 3000` | 955.18 | 1997.56 | 2154 application 
blocks read and verified |
   | `sd_bench -U -v -b 4096 -r 3 -d 3000` | 1173.91 | 1998.34 | 2647 
application blocks read and verified |
   | `sd_bench -U -v -b 8192 -r 3 -d 3000` | 1259.43 | 1997.04 | 1421 
application blocks read and verified |
   
   For the unaligned 4 KiB test, the printed write/read pointers are 
`0x300170a1` and `0x300180a9`: both are byte-unaligned addresses in D2 SRAM1. 
Thus the completed file-I/O test exercises D2 caller buffers and reports 
successful readback verification. The ordinary 4 KiB run does not print an 
address, so it is not being labeled a verified direct-AXI comparison.
   
   The author reports approximately **300 KB/s before the changes**. The 
observed write averages are approximately **3.2–4.2 times that reported 
baseline**, but the old command, exact configuration and raw baseline log are 
not available, so this is not presented as a controlled before/after benchmark. 
No performance conclusion is drawn from the unaligned run being faster than the 
ordinary run.
   
   All three supplied runs completed readback verification without reported 
verification errors. The 8 KiB test also used D2 write/read pointers 
(`0x300170a1` / `0x300190a9`) and completed successfully with the configured 4 
KiB host cap. File-system I/O does not by itself prove the exact host-level 
split pattern. Neighboring-buffer guards, D3/DTCM coverage and 
timeout/cancellation/card-removal recovery remain outstanding. Keeping this PR 
as Draft while those points and human sign-off are addressed.
   
   <details>
   <summary>Console output supplied by the hardware tester</summary>
   
   ```text
   nsh> sd_bench -v -b 4096 -r 3 -d 3000
   NuttShell (NSH) NuttX-12.12.0
   INFO  [sd_bench] Using block size = 4096 bytes, sync=0
   INFO  [sd_bench] Testing Sequential Write Speed...
   INFO  [sd_bench]   Run  0:   979.31 KB/s, max write time: 50 ms (=  80.00 
KB/s), fsync: 5 ms
   INFO  [sd_bench]   Run  1:   912.35 KB/s, max write time: 48 ms (=  83.33 
KB/s), fsync: 5 ms
   INFO  [sd_bench]   Run  2:   973.90 KB/s, max write time: 39 ms (= 102.56 
KB/s), fsync: 5 ms
   INFO  [sd_bench]   Avg   :   955.18 KB/s
   INFO  [sd_bench]   Overall max write time: 50 ms
   INFO  [sd_bench] Testing Sequential Read Speed of 2154 blocks
   INFO  [sd_bench]   Run  0:  1997.19 KB/s, max read/verify time: 2 ms 
(=2000.00 KB/s)
   INFO  [sd_bench]   Run  1:  1998.41 KB/s, max read/verify time: 2 ms 
(=2000.00 KB/s)
   INFO  [sd_bench]   Avg   :  1997.56 KB/s 2154 blocks read and verified
   
   nsh> sd_bench -U -v -b 4096 -r 3 -d 3000
   Block ptr 0x300170a1
   INFO  [sd_bench] Using block size = 4096 bytes, sync=0
   INFO  [sd_bench] Testing Sequential Write Speed...
   INFO  [sd_bench]   Run  0:  1017.74 KB/s, max write time: 48 ms (=  83.33 
KB/s), fsync: 5 ms
   INFO  [sd_bench]   Run  1:  1214.40 KB/s, max write time: 20 ms (= 200.00 
KB/s), fsync: 5 ms
   INFO  [sd_bench]   Run  2:  1289.64 KB/s, max write time: 24 ms (= 166.67 
KB/s), fsync: 5 ms
   INFO  [sd_bench]   Avg   :  1173.91 KB/s
   INFO  [sd_bench]   Overall max write time: 48 ms
   INFO  [sd_bench] Testing Sequential Read Speed of 2647 blocks
   Read Block ptr 0x300180a9
   INFO  [sd_bench]   Run  0:  1997.90 KB/s, max read/verify time: 2 ms 
(=2000.00 KB/s)
   INFO  [sd_bench]   Run  1:  1998.92 KB/s, max read/verify time: 2 ms 
(=2000.00 KB/s)
   INFO  [sd_bench]   Avg   :  1998.34 KB/s 2647 blocks read and verified
   
   nsh> sd_bench -U -v -b 8192 -r 3 -d 3000
   Block ptr 0x300170a1
   INFO  [sd_bench] Using block size = 8192 bytes, sync=0
   INFO  [sd_bench] Testing Sequential Write Speed...
   INFO  [sd_bench]   Run  0:  1262.24 KB/s, max write time: 23 ms (= 347.83 
KB/s), fsync: 5 ms
   INFO  [sd_bench]   Run  1:  1223.94 KB/s, max write time: 32 ms (= 250.00 
KB/s), fsync: 5 ms
   INFO  [sd_bench]   Run  2:  1292.08 KB/s, max write time: 27 ms (= 296.30 
KB/s), fsync: 5 ms
   INFO  [sd_bench]   Avg   :  1259.43 KB/s
   INFO  [sd_bench]   Overall max write time: 32 ms
   INFO  [sd_bench] Testing Sequential Read Speed of 1421 blocks
   Read Block ptr 0x300190a9
   INFO  [sd_bench]   Run  0:  1998.02 KB/s, max read/verify time: 4 ms 
(=2000.00 KB/s)
   INFO  [sd_bench]   Run  1:  1995.94 KB/s, max read/verify time: 4 ms 
(=2000.00 KB/s)
   INFO  [sd_bench]   Avg   :  1997.04 KB/s 1421 blocks read and verified
   ```
   
   Whitespace normalized. The 8 KiB readback output was supplied in a follow-up 
by the tester.
   </details>
   


-- 
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