Re: [PATCH v3 0/3] perf: add new option '--workload-attr' to set workload sched_policy/priority/mask

From: Adrian Hunter
Date: Mon Jul 24 2023 - 13:54:26 EST


On 24/07/23 12:34, Changbin Du wrote:
> On Mon, Jul 24, 2023 at 08:44:12AM +0300, Adrian Hunter wrote:
>> On 24/07/23 07:02, Changbin Du wrote:
>>> On Thu, Jul 20, 2023 at 01:00:58PM +0300, Adrian Hunter wrote:
>>>> On 18/07/23 06:33, Changbin Du wrote:
>>>>> This adds a new option '--workload-attr' to set the sched_policy/priority/mask
>>>>> of the workload to reduce system noise.
>>>>>
>>>>> $ sudo perf stat --workload-attr fifo,40,0-3:7 -- ls
>>>>
>>>> Not really sold on the need for this, but maybe it could be
>>>> simpler.
>>>> What about just adding a hook for a command (e.g. script) to
>>>> run before exec'ing the workload e.g.
>>>>
>>>> --configure-workload=blah.sh
>>>>
>>>> results in perf doing system("blah.sh 12345") where 12345
>>>> is the workload PID.
>>>>
>>>> Then maybe you could do:
>>>>
>>>> --configure-workload="taskset -p 0x3"
>>>>
>>> Acctually, we already have such option for perf-stat.
>>>
>>> --post <command> command to run after to the measured command
>>> --pre <command> command to run prior to the measured command
>>>
>>> By involving a shell script we can do more complex setup. But sometimes I just
>>> need to set sched attributes. For example, to investigate the impact of
>>> various compiler optimizations. In this case, I don't want a script. This is the
>>> original purpose I try to add this new option.
>>
>> There is also command schedtool, but what exactly is the problem
>> with a script?
>>
>>>
> There is no problem with a script, just a shortcut for convenience. When I want
> to share perf investigation with somebody, I just need to share a single commandline.
> Anyway nothing bad, right? :)

Also depends on what you call a single commandline, since you could
always create the script and run perf in one long line :-)

I would still go for the simpler option: easier to maintain and
potentially more flexible.