Improve realtime performance on NEOS (#2166)

* fix setting core affinity

* dmonitoringd doesn't need rt priority

* android only gets two cores

* model and planner get core 2

* log missed cycle count

* neos update

* prod image

* revert NEOS changes

* still need this
old-commit-hash: ef21b83937d25b824018ac1d07fa7759ae6f8128
This commit is contained in:
Adeeb Shihadeh
2020-09-16 15:33:12 -07:00
committed by GitHub
parent d864dc4cf1
commit bdf52941c8
10 changed files with 38 additions and 55 deletions
+2 -5
View File
@@ -1,10 +1,9 @@
#!/usr/bin/env python3
import os
import gc
from cereal import car, log
from common.hardware import HARDWARE
from common.numpy_fast import clip
from common.realtime import sec_since_boot, set_realtime_priority, set_core_affinity, Ratekeeper, DT_CTRL
from common.realtime import sec_since_boot, config_rt_process, Priority, Ratekeeper, DT_CTRL
from common.profiler import Profiler
from common.params import Params, put_nonblocking
import cereal.messaging as messaging
@@ -43,9 +42,7 @@ EventName = car.CarEvent.EventName
class Controls:
def __init__(self, sm=None, pm=None, can_sock=None):
gc.disable()
set_realtime_priority(53)
set_core_affinity(3)
config_rt_process(3, Priority.CTRL_HIGH)
# Setup sockets
self.pm = pm
+2 -6
View File
@@ -1,9 +1,7 @@
#!/usr/bin/env python3
import gc
from cereal import car
from common.params import Params
from common.realtime import set_realtime_priority
from common.realtime import Priority, config_rt_process
from selfdrive.swaglog import cloudlog
from selfdrive.controls.lib.planner import Planner
from selfdrive.controls.lib.vehicle_model import VehicleModel
@@ -12,10 +10,8 @@ import cereal.messaging as messaging
def plannerd_thread(sm=None, pm=None):
gc.disable()
# start the loop
set_realtime_priority(52)
config_rt_process(2, Priority.CTRL_LOW)
cloudlog.info("plannerd is waiting for CarParams")
CP = car.CarParams.from_bytes(Params().get("CarParams", block=True))
+2 -2
View File
@@ -7,7 +7,7 @@ import cereal.messaging as messaging
from cereal import car
from common.numpy_fast import interp
from common.params import Params
from common.realtime import Ratekeeper, set_realtime_priority
from common.realtime import Ratekeeper, Priority, set_realtime_priority
from selfdrive.config import RADAR_TO_CAMERA
from selfdrive.controls.lib.cluster.fastcluster_py import cluster_points_centroid
from selfdrive.controls.lib.radar_helpers import Cluster, Track
@@ -174,7 +174,7 @@ class RadarD():
# fuses camera and radar data for best lead detection
def radard_thread(sm=None, pm=None, can_sock=None):
set_realtime_priority(52)
set_realtime_priority(Priority.CTRL_LOW)
# wait for stats about the car to come in from controls
cloudlog.info("radard is waiting for CarParams")