mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-18 23:33:58 +08:00
paramsd: fix variable cpu usage (#24281)
* paramsd: fix variable cpu usage * fix that * increase that a bit
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user