Skip to content

isolcpus and taskset for multithreaded executor  #65

Open
@hyos

Description

@hyos

README.md suggests using isolcpus=2,3 and gives an example of how to run a single-threaded executor on CPU2 by taskset -c 2.

But there is a problem when someone wants to test a multi-threaded executor. isolcpus basically disables load balancing, so a process can use only one CPU even if ran with taskset -c 2,3. For a process to use multiple isolated CPUs, RT priority class (e.g., SCHED_FIFO) is needed since the Linux RT scheduler performs like a global work-conserving scheduler for all assigned CPUs. In short, we need something like:

taskset -c 2,3 chrt -f 90 <path_to_multithreaded_executor>

I guess colcon test scripts need to be updated so that, when TEST_PLATFORM is enabled, it runs executors with taskset and chrt.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions