paramsd: fix variable cpu usage (#24281)

* paramsd: fix variable cpu usage

* fix that

* increase that a bit
pull/24284/head
Adeeb Shihadeh 3 years ago committed by GitHub
parent 4c9020863f
commit f7c2b8b46e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  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 gc
import os import os
import time import time
from typing import Optional from typing import Optional, List, Union
from setproctitle import getproctitle # pylint: disable=no-name-in-module 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] 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: 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() gc.disable()
set_realtime_priority(priority) set_realtime_priority(priority)
set_core_affinity(core) c = cores if isinstance(cores, list) else [cores, ]
set_core_affinity(c)
class Ratekeeper: class Ratekeeper:

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

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

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

Loading…
Cancel
Save