Skip to content

perf: move runtime state files from SD card to tmpfs#751

Open
winstar0070 wants to merge 1 commit intosipeed:mainfrom
Stella-IT:feat/move-runtime-state-to-tmpfs
Open

perf: move runtime state files from SD card to tmpfs#751
winstar0070 wants to merge 1 commit intosipeed:mainfrom
Stella-IT:feat/move-runtime-state-to-tmpfs

Conversation

@winstar0070
Copy link

Summary

  • Move frequently-written runtime state files (now_fps, state, wifi_state, width, height) from /kvmapp/kvm/ to /tmp/kvm/ (tmpfs) to minimize SD card writes and extend SD card lifespan
  • now_fps alone causes ~86,400+ writes/day (written every 3 seconds), significantly contributing to SD card wear
  • User settings (fps, qlty, res, type) remain on /kvmapp/kvm/ as they need to persist across reboots

Related: #708, #701

Changes

File Frequency Change
now_fps Every 3 seconds /kvmapp/kvm/now_fps/tmp/kvm/now_fps
state On camera state change /kvmapp/kvm/state/tmp/kvm/state
wifi_state On WiFi state change /kvmapp/kvm/wifi_state/tmp/kvm/wifi_state
width / height On HDMI resolution change /kvmapp/kvm/{width,height}/tmp/kvm/{width,height}

Files modified (8 files)

  • server/service/stream/frame_rate.go — now_fps write path
  • server/service/network/wifi.go — WiFiStateFile constant
  • support/sg2002/kvm_system/main/lib/system_init/system_init.cpp — add mkdir -p /tmp/kvm + update init paths
  • support/sg2002/kvm_system/main/lib/system_state/system_state.cpp — update read/write paths
  • support/sg2002/kvm_system/main/lib/hdmi/hdmi.cpp — update width/height write paths
  • support/sg2002/additional/kvm/src/kvm_vision.cpp — update defines + state write paths
  • support/sg2002/additional/sophgo-middleware/v2/sample/common/sample_common_sensor.c — update width/height read paths
  • support/sg2002/kvm_system/main/include/config.h — update comments

Test plan

  • Verify /tmp/kvm/ directory and files are created on boot
  • Verify FPS value updates correctly via cat /tmp/kvm/now_fps
  • Verify /tmp/kvm/width and /tmp/kvm/height update on HDMI connect/disconnect
  • Verify /tmp/kvm/wifi_state transitions on WiFi connect/disconnect
  • Verify /tmp/kvm/state changes on camera stream start/stop
  • Verify user settings (fps, qlty, res, type) persist after reboot
  • Verify /tmp is mounted as tmpfs: mount | grep tmpfs | grep /tmp

Move frequently-written runtime state files (now_fps, state,
wifi_state, width, height) from /kvmapp/kvm/ to /tmp/kvm/ to
minimize SD card writes and extend SD card lifespan.

now_fps is written every 3 seconds, causing ~86K+ writes/day.
User settings (fps, qlty, res, type) remain on /kvmapp/kvm/
as they need to persist across reboots.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments