Skip to menu

Robotics with Object Pascal

Rover written with RUST

Assigning process to fixed CORE #

2025.11.12 21:10

me Views:84

 

Forcing specific program to run on particular core # (Simple way, less professional)

 

taskset -c 3 ./PasUDSServer

 

taskset -c 1 target/debug/vo_livecam

 

taskset -c 2 python3 yolo_service.py

 

The "Pro" Robotics Way: isolcpus

 

taskset forces your program to stay on a core, but it doesn't stop Linux from interrupting that core to check emails or run system updates.

 

To get Hard Real-Time performance for your VO, you can tell Linux to never touch specific cores unless you explicitly tell it to.

  1. Edit Grub: sudo nano /etc/default/grub

  2. Modify GRUB_CMDLINE_LINUX_DEFAULT: Add isolcpus=1,2,3 to the end of the line. Example: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=1,2,3"

  3. Update Grub and Reboot: “sudo update-grub”, then “sudo reboot”

After rebooting:

  • Linux will ONLY use Core 0 for everything (system, GUI, mouse, etc.).

  • Cores 1, 2, and 3 will sit at 0% usage doing absolutely nothing.

  • You MUST use taskset -c 1 ./vo_livecam to run your program on Core 1.

  • Result: Your VO engine will have 100% of that core's attention with zero interruptions from the OS. This is ideal for the stability of your odometry.