[RFC] Adding support for setting the affinity of the recording process

From: Yang Jihong
Date: Mon Jun 12 2023 - 06:42:33 EST


Hello everyone,

Currently, perf-record supports profiling an existing process, thread, or a specified command.

Sometimes we may need to set CPU affinity of the target process before recording:

# taskset -pc <cpus> <pid>
# perf record -p <pid> -- sleep 10

or:

# perf record -- `taskset -c <cpus> COMMAND`

I'm thinking about getting perf to support setting the affinity of the recording process, for example:

1. set the CPU affinity of the <pid1> process to <cpus1>, <pid2> process to <cpus2>, and record:

# perf record -p <pid1>/<cpus1>:<pid2>/<cpus2> -- sleep 10

and

2. set CPU affinity of the COMMAND and record:

# perf record --taskset-command <cpus> COMMAND

In doing so, perf, as an observer, actually changes some of the properties of the target process, which may be contrary to the purpose of perf tool.


Will we consider accepting this approach?

Thanks,
Yang.