rtshield.py 559 B

123456789101112131415161718192021
  1. #!/usr/bin/env python3
  2. import os
  3. import time
  4. from typing import NoReturn
  5. from common.realtime import set_core_affinity, set_realtime_priority
  6. # RT shield - ensure CPU 3 always remains available for RT processes
  7. # runs as SCHED_FIFO with minimum priority to ensure kthreads don't
  8. # get scheduled onto CPU 3, but it's always preemptible by realtime
  9. # openpilot processes
  10. def main() -> NoReturn:
  11. set_core_affinity([int(os.getenv("CORE", "3")), ])
  12. set_realtime_priority(1)
  13. while True:
  14. time.sleep(0.000001)
  15. if __name__ == "__main__":
  16. main()