Skip to content

isolcpus and taskset for multithreaded executor  #65

@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
No fields configured for issues without a type.

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions