logging: fs backend: only fs_sync when done with a batch of logs #84979
+15
−6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The previous behavior was to call
fs_sync
on the file after every log item written. In many cases, log messages come in bursts, andlog_core
already operates in batches, configurable usingCONFIG_LOG_PROCESS_THREAD_SLEEP_MS
andCONFIG_LOG_PROCESS_TRIGGER_THRESHOLD
. Once the batch is done, the backends get notified withLOG_BACKEND_EVT_PROCESS_THREAD_DONE
if any logs were processed. This is a nice time tofs_sync
the written changes.This change both speeds up the time spent writing logs and reduces the amount of block erases done on the flash, as the previous implementation erased blocks after each individual log message.