diff --git a/selfdrive/boardd/boardd.cc b/selfdrive/boardd/boardd.cc index 8e5fa81613..e67ae793d1 100644 --- a/selfdrive/boardd/boardd.cc +++ b/selfdrive/boardd/boardd.cc @@ -573,7 +573,7 @@ int main() { LOG("set priority returns %d", err); #ifdef QCOM2 - err = set_core_affinity(7); + err = set_core_affinity(4); #else err = set_core_affinity(3); #endif diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index 987898e739..95576c98b0 100755 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -45,7 +45,7 @@ EventName = car.CarEvent.EventName class Controls: def __init__(self, sm=None, pm=None, can_sock=None): - config_realtime_process(7 if TICI else 3, Priority.CTRL_HIGH) + config_realtime_process(4 if TICI else 3, Priority.CTRL_HIGH) # Setup sockets self.pm = pm diff --git a/selfdrive/hardware/tici/hardware.py b/selfdrive/hardware/tici/hardware.py index 536ab4d155..f277944aa3 100644 --- a/selfdrive/hardware/tici/hardware.py +++ b/selfdrive/hardware/tici/hardware.py @@ -205,6 +205,11 @@ class Tici(HardwareBase): # amplifier, 100mW at idle write_amplifier_reg(0x51, 0b0 if enabled else 0b1, 7, 0b10000000) + # offline big cluster, leave core 4 online for boardd + for i in range(5, 8): + # TODO: fix permissions with udev + val = "0" if enabled else "1" + os.system(f"sudo su -c 'echo {val} > /sys/devices/system/cpu/cpu{i}/online'") if __name__ == "__main__": import sys diff --git a/selfdrive/modeld/modeld.cc b/selfdrive/modeld/modeld.cc index 03a9dc758f..bfa5e8c362 100644 --- a/selfdrive/modeld/modeld.cc +++ b/selfdrive/modeld/modeld.cc @@ -137,8 +137,7 @@ int main(int argc, char **argv) { #ifdef QCOM set_core_affinity(2); #elif QCOM2 - // CPU usage is much lower when pinned to a single big core - set_core_affinity(4); + set_core_affinity(7); #endif bool wide_camera = false;