Keep the FLM live receiver at normal CPU priority

This commit is contained in:
firestar5683
2026-10-29 16:58:34 -05:00
parent ec5739441e
commit 0d795930ff
3 changed files with 34 additions and 2 deletions
+1 -1
View File
@@ -1020,7 +1020,7 @@ def main():
try:
if hasattr(os, 'sched_setscheduler'):
os.sched_setscheduler(0, os.SCHED_OTHER, os.sched_param(0))
os.nice(10)
os.setpriority(os.PRIO_PROCESS, 0, 0)
except OSError:
# An optional estimator must not inherit realtime scheduling on failure.
return
@@ -0,0 +1,32 @@
"""The receiver must reach startup at normal priority; numerical guards stay separate."""
from unittest import mock
import pytest
from openpilot.starpilot.flm import steerlearnerd
class ReachedParams(Exception):
pass
def test_actual_receiver_main_requests_normal_priority_before_reading_params():
with mock.patch.object(steerlearnerd.os, 'sched_setscheduler') as scheduler, \
mock.patch.object(steerlearnerd.os, 'setpriority') as priority, \
mock.patch.object(steerlearnerd.os, 'nice') as nice, \
mock.patch.object(steerlearnerd, 'Params', side_effect=ReachedParams):
with pytest.raises(ReachedParams):
steerlearnerd.main()
scheduler.assert_called_once_with(0, steerlearnerd.os.SCHED_OTHER, mock.ANY)
priority.assert_called_once_with(steerlearnerd.os.PRIO_PROCESS, 0, 0)
nice.assert_not_called()
@pytest.mark.parametrize('failed_call', ['sched_setscheduler', 'setpriority'])
def test_actual_receiver_main_refuses_unqualified_scheduler_startup(failed_call):
with mock.patch.object(steerlearnerd.os, 'sched_setscheduler'), \
mock.patch.object(steerlearnerd.os, 'setpriority'), \
mock.patch.object(steerlearnerd, 'Params') as params:
getattr(steerlearnerd.os, failed_call).side_effect = PermissionError('unavailable')
assert steerlearnerd.main() is None
params.assert_not_called()
+1 -1
View File
@@ -1 +1 @@
{"protected_inventory_sha256": "bac7d61b5ba9533b8179581ef7b58b9b12726afd6de30981b7bf78b37b1a9e9b", "schema_version": 1}
{"protected_inventory_sha256": "b15246eb3fd836cb63fa30ffcb9eadb1d9f7004f984a4b6ef20b5de5e7397c8a", "schema_version": 1}