forked from Archive/PX4-Autopilot
cpuload: Fix wrong idle thread load
When the CPU load monitor is started while already running, then the idle thread last_times[0] is reset to the last 1 second, rather than since when the CPU load monitor was last started. The remaining threads are not impacted, since their last_times[i] is reset to zero here. This results in the idle thread having a lower than real CPU load, with the remaining CPU time being wrongly attributed as scheduler load.
This commit is contained in:
parent
76a2acb222
commit
103ddb5b3d
|
@ -1610,6 +1610,11 @@ void Logger::print_load_callback(void *user)
|
|||
|
||||
void Logger::initialize_load_output(PrintLoadReason reason)
|
||||
{
|
||||
// If already in progress, don't try to start again
|
||||
if (_next_load_print != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
init_print_load(&_load);
|
||||
|
||||
if (reason == PrintLoadReason::Watchdog) {
|
||||
|
|
Loading…
Reference in New Issue