mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-05 20:13:47 +08:00
Keep the FLM live receiver at normal CPU priority
This commit is contained in:
@@ -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
@@ -1 +1 @@
|
||||
{"protected_inventory_sha256": "bac7d61b5ba9533b8179581ef7b58b9b12726afd6de30981b7bf78b37b1a9e9b", "schema_version": 1}
|
||||
{"protected_inventory_sha256": "b15246eb3fd836cb63fa30ffcb9eadb1d9f7004f984a4b6ef20b5de5e7397c8a", "schema_version": 1}
|
||||
|
||||
Reference in New Issue
Block a user