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)
|
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);
|
init_print_load(&_load);
|
||||||
|
|
||||||
if (reason == PrintLoadReason::Watchdog) {
|
if (reason == PrintLoadReason::Watchdog) {
|
||||||
|
|
Loading…
Reference in New Issue