diff --git a/common/realtime.py b/common/realtime.py index 854c3ca5922bf3..01786924158357 100644 --- a/common/realtime.py +++ b/common/realtime.py @@ -27,11 +27,6 @@ class Priority: CTRL_HIGH = 53 -def set_realtime_priority(level: int) -> None: - if not PC: - os.sched_setscheduler(0, os.SCHED_FIFO, os.sched_param(level)) - - def set_core_affinity(cores: list[int]) -> None: if not PC: os.sched_setaffinity(0, cores) @@ -39,7 +34,8 @@ def set_core_affinity(cores: list[int]) -> None: def config_realtime_process(cores: int | list[int], priority: int) -> None: gc.disable() - set_realtime_priority(priority) + if not PC: + os.sched_setscheduler(0, os.SCHED_FIFO, os.sched_param(priority)) c = cores if isinstance(cores, list) else [cores, ] set_core_affinity(c) diff --git a/selfdrive/locationd/calibrationd.py b/selfdrive/locationd/calibrationd.py index 6e154bf07cf83e..8ce884ae4fd768 100755 --- a/selfdrive/locationd/calibrationd.py +++ b/selfdrive/locationd/calibrationd.py @@ -6,7 +6,6 @@ and the image input into the neural network is not corrected for roll. ''' -import gc import os import capnp import numpy as np @@ -16,7 +15,7 @@ import cereal.messaging as messaging from openpilot.common.conversions import Conversions as CV from openpilot.common.params import Params -from openpilot.common.realtime import set_realtime_priority +from openpilot.common.realtime import config_realtime_process from openpilot.common.transformations.orientation import rot_from_euler, euler_from_rot from openpilot.common.swaglog import cloudlog @@ -256,8 +255,7 @@ def send_data(self, pm: messaging.PubMaster, valid: bool) -> None: def main() -> NoReturn: - gc.disable() - set_realtime_priority(1) + config_realtime_process([0, 1, 2, 3], 5) pm = messaging.PubMaster(['liveCalibration']) sm = messaging.SubMaster(['cameraOdometry', 'carState', 'carParams'], poll='cameraOdometry') diff --git a/selfdrive/modeld/dmonitoringmodeld.py b/selfdrive/modeld/dmonitoringmodeld.py index e2dd6f71ca9aeb..a20155e3ec687a 100755 --- a/selfdrive/modeld/dmonitoringmodeld.py +++ b/selfdrive/modeld/dmonitoringmodeld.py @@ -8,7 +8,6 @@ os.environ['QCOM'] = '1' else: from openpilot.selfdrive.modeld.runners.ort_helpers import make_onnx_cpu_runner -import gc import math import time import pickle @@ -21,7 +20,7 @@ from cereal.messaging import PubMaster, SubMaster from msgq.visionipc import VisionIpcClient, VisionStreamType, VisionBuf from openpilot.common.swaglog import cloudlog -from openpilot.common.realtime import set_realtime_priority +from openpilot.common.realtime import config_realtime_process from openpilot.common.transformations.model import dmonitoringmodel_intrinsics, DM_INPUT_SIZE from openpilot.common.transformations.camera import _ar_ox_fisheye, _os_fisheye from openpilot.selfdrive.modeld.models.commonmodel_pyx import CLContext, MonitoringModelFrame @@ -140,9 +139,8 @@ def get_driverstate_packet(model_output: np.ndarray, frame_id: int, location_ts: def main(): - gc.disable() setproctitle(PROCESS_NAME) - set_realtime_priority(1) + config_realtime_process([0, 1, 2, 3], 5) sentry.set_tag("daemon", PROCESS_NAME) cloudlog.bind(daemon=PROCESS_NAME) diff --git a/selfdrive/monitoring/dmonitoringd.py b/selfdrive/monitoring/dmonitoringd.py index 54d22c12437501..f137b406b49134 100755 --- a/selfdrive/monitoring/dmonitoringd.py +++ b/selfdrive/monitoring/dmonitoringd.py @@ -1,15 +1,12 @@ #!/usr/bin/env python3 -import gc - import cereal.messaging as messaging from openpilot.common.params import Params -from openpilot.common.realtime import set_realtime_priority +from openpilot.common.realtime import config_realtime_process from openpilot.selfdrive.monitoring.helpers import DriverMonitoring def dmonitoringd_thread(): - gc.disable() - set_realtime_priority(2) + config_realtime_process([0, 1, 2, 3], 5) params = Params() pm = messaging.PubMaster(['driverMonitoringState'])