radek-pesina opened a new issue, #9080:
URL: https://github.com/apache/nuttx/issues/9080

   Hi,
   
   Utilising the littlefs filesystem on SD/eMMC is providing read/write speeds 
of approximately 50KiB/sec (calculated using dd command). I've tried optimising 
the menuconfig settings to improve it, including options such as below but 
still the performance is lacking:
   
   - Turning on CONFIG_MEMCPY_VIK gave slight improvement
   - Setting USEC_PER_TICK to 1000 or below gave most improvement, however at 
the detriment of other aspects of the system.  The fastest speeds observed by 
adjusting this was ~370KiB/s write and 700KiB/s read though overall this was 
unacceptable given the effect on the rest of the system.
   - Adjusting LittleFS parameters (e.g. 
CONFIG_FS_LITTLEFS_PROGRAM_SIZE_FACTOR, CONFIG_FS_LITTLEFS_READ_SIZE_FACTOR, 
CONFIG_FS_LITTLEFS_BLOCK_SIZE_FACTOR, CONFIG_FS_LITTLEFS_CACHE_SIZE_FACTOR, 
CONFIG_FS_LITTLEFS_LOOKAHEAD_SIZE 
   - Ensuring SD/eMMC DMA read/writes are enabled
   - Setting MMCSD_MULTIBLOCK_LIMIT to 0
   
   Details of build:
   
   - risc-v architecture using running kernel in S-mode, main clock running @ 
75MHz, SD peripheral @ 25MHz
   - Toolchain: riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14
   - Nuttx GIT version: https://github.com/apache/nuttx/pull/8922 with local 
changes in littlefs to use kmm_malloc/free due to using DMA and S-mode kernel
   - Built with commands:
   ```
      $ make distclean -j16
      $ ./tools/configure.sh rv-virt:knsh64
      $ make -j16 
      $ make export -j16
      $ make import -j16  
   ```
   - Executed with command:
   `  $ qemu-system-riscv64 -semihosting -M virt,aclint=on -cpu rv64 -smp 8 
-bios none -kernel nuttx -nographic -serial mon:stdio`
   
   Our architecture and hardware design requires the product to boot from eMMC 
and have a fast boot time for a firmware image of approximately 2MiB.  At 
50KiB/s the image load itself would consume 40 seconds.
   
   NOTE: Interestingly littlefs performs considerably better than vFAT on 
SD/eMMC, which on the same setup has read/writes speeds of ~12KiB/s.  Littlefs 
however on a RAM disk gives speeds of 560KiB/s for write which is considerably 
slower than vFAT, which measures ~3225KiB/s.
   
   Does anyone have a rough feel on what  performance we could expect when 
using littefs on SD/eMMC in Nuttx for a configuration like described above and 
are there ways to improve this?
   


-- 
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: commits-unsubscr...@nuttx.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to