|
|
|
@ -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(): |
|
|
|
|