paramsd: fix variable cpu usage (#24281)

* paramsd: fix variable cpu usage

* fix that

* increase that a bit
old-commit-hash: f7c2b8b46e
taco
Adeeb Shihadeh 3 years ago committed by GitHub
parent b57808e650
commit 9b9d332a54
  1. 11
      common/realtime.py
  2. 7
      selfdrive/locationd/paramsd.py
  3. 2
      selfdrive/rtshield.py
  4. 2
      selfdrive/test/test_onroad.py

@ -2,7 +2,7 @@
import gc
import os
import time
from typing import Optional
from typing import Optional, List, Union
from setproctitle import getproctitle # pylint: disable=no-name-in-module
@ -38,15 +38,16 @@ def set_realtime_priority(level: int) -> None:
os.sched_setscheduler(0, os.SCHED_FIFO, os.sched_param(level)) # type: ignore[attr-defined]
def set_core_affinity(core: int) -> None:
def set_core_affinity(cores: List[int]) -> None:
if not PC:
os.sched_setaffinity(0, [core,]) # type: ignore[attr-defined]
os.sched_setaffinity(0, cores)
def config_realtime_process(core: int, priority: int) -> None:
def config_realtime_process(cores: Union[int, List[int]], priority: int) -> None:
gc.disable()
set_realtime_priority(priority)
set_core_affinity(core)
c = cores if isinstance(cores, list) else [cores, ]
set_core_affinity(c)
class Ratekeeper:

@ -1,14 +1,12 @@
#!/usr/bin/env python3
import gc
import math
import json
import numpy as np
import cereal.messaging as messaging
from cereal import car
from common.params import Params, put_nonblocking
from common.realtime import set_realtime_priority, DT_MDL
from common.realtime import config_realtime_process, DT_MDL
from common.numpy_fast import clip
from selfdrive.locationd.models.car_kf import CarKalman, ObservationKind, States
from selfdrive.locationd.models.constants import GENERATED_DIR
@ -103,8 +101,7 @@ class ParamsLearner:
def main(sm=None, pm=None):
gc.disable()
set_realtime_priority(5)
config_realtime_process([0, 1, 2, 3], 5)
if sm is None:
sm = messaging.SubMaster(['liveLocationKalman', 'carState'], poll=['liveLocationKalman'])

@ -11,7 +11,7 @@ from common.realtime import set_core_affinity, set_realtime_priority
# openpilot processes
def main() -> NoReturn:
set_core_affinity(int(os.getenv("CORE", "3")))
set_core_affinity([int(os.getenv("CORE", "3")), ])
set_realtime_priority(1)
while True:

@ -27,7 +27,7 @@ PROCS = {
"./locationd": 9.1,
"selfdrive.controls.plannerd": 11.7,
"./_ui": 33.0,
"selfdrive.locationd.paramsd": 5.0,
"selfdrive.locationd.paramsd": 9.0,
"./_sensord": 6.17,
"selfdrive.controls.radard": 4.5,
"./_modeld": 4.48,

Loading…
Cancel
Save