tici: fix set_realtime_priority (#2124)

* cleanup and pin modeld to core 5

* Unused import
old-commit-hash: 5c058140ed
commatwo_master
Willem Melching 5 years ago committed by GitHub
parent 16ef2f6a1b
commit e5f5cdaccf
  1. 22
      common/realtime.py
  2. 4
      selfdrive/common/util.c
  3. 5
      selfdrive/modeld/modeld.cc

@ -1,12 +1,11 @@
"""Utilities for reading real time clocks and keeping soft real time constraints."""
import os
import time
import platform
import subprocess
import multiprocessing
from cffi import FFI
from common.hardware import ANDROID
from common.hardware import PC
from common.common_pyx import sec_since_boot # pylint: disable=no-name-in-module, import-error
@ -21,6 +20,7 @@ ffi = FFI()
ffi.cdef("long syscall(long number, ...);")
libc = ffi.dlopen(None)
def _get_tid():
if platform.machine() == "x86_64":
NR_gettid = 186
@ -33,21 +33,17 @@ def _get_tid():
def set_realtime_priority(level):
if os.getuid() != 0:
print("not setting priority, not root")
return
if PC:
return -1
else:
return subprocess.call(['chrt', '-f', '-p', str(level), str(_get_tid())])
def set_core_affinity(core):
if os.getuid() != 0:
print("not setting affinity, not root")
return
if ANDROID:
return subprocess.call(['taskset', '-p', str(core), str(_get_tid())])
else:
def set_core_affinity(core):
if PC:
return -1
else:
return subprocess.call(['taskset', '-p', str(core), str(_get_tid())])
class Ratekeeper():

@ -50,7 +50,6 @@ void set_thread_name(const char* name) {
int set_realtime_priority(int level) {
#ifdef __linux__
long tid = syscall(SYS_gettid);
// should match python using chrt
@ -64,8 +63,7 @@ int set_realtime_priority(int level) {
}
int set_core_affinity(int core) {
#ifdef QCOM
#ifdef __linux__
long tid = syscall(SYS_gettid);
cpu_set_t rt_cpu;

@ -92,6 +92,11 @@ int main(int argc, char **argv) {
int err;
set_realtime_priority(51);
#ifdef QCOM2
// CPU usage is much lower when pinned to a single big core
set_core_affinity(4);
#endif
signal(SIGINT, (sighandler_t)set_do_exit);
signal(SIGTERM, (sighandler_t)set_do_exit);

Loading…
Cancel
Save