Re: [PATCH V2] perf scripts python: Add a script to run instances of perf script in parallel
From: Adrian Hunter
Date: Fri Apr 12 2024 - 02:08:14 EST
On 11/04/24 21:19, Ian Rogers wrote:
> On Wed, Mar 13, 2024 at 5:36 AM Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote:
>>
>> Add a Python script to run a perf script command multiple times in
>> parallel, using perf script options --cpu and --time so that each job
>> processes a different chunk of the data.
>>
>> The script supports the use of normal perf script options like
>> --dlfilter and --script, so that the benefit of running parallel jobs
>> naturally extends to them also. In addition, a command can be provided
>> (refer --pipe-to option) to pipe standard output to a custom command.
>>
>> Refer to the script's own help text at the end of the patch for more
>> details.
>>
>> The script is useful for Intel PT traces, that can be efficiently
>> decoded by perf script when split by CPU and/or time ranges. Running
>> jobs in parallel can decrease the overall decoding time.
>>
>> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
>> ---
>>
>>
>> Changes in V2:
>>
>> Added option to pipe to a custom command
>> Added option to set a minimum time interval
>> Minor tidying
>>
>>
>> tools/perf/scripts/python/parallel-perf.py | 989 +++++++++++++++++++++
>> 1 file changed, 989 insertions(+)
>> create mode 100755 tools/perf/scripts/python/parallel-perf.py
>>
>> diff --git a/tools/perf/scripts/python/parallel-perf.py b/tools/perf/scripts/python/parallel-perf.py
>> new file mode 100755
>> index 000000000000..8fe398f81a42
>> --- /dev/null
>> +++ b/tools/perf/scripts/python/parallel-perf.py
>> @@ -0,0 +1,989 @@
>> +#!/usr/bin/env python3
>> +# SPDX-License-Identifier: GPL-2.0
>
> With the python summer of code proposal, that no-one applied to, I
> wanted to package things like a perf.data IO library in some public
> package index. As GPL 2 isn't permissive then we may need to
> reimplement this code because of this. Fwiw, my preference is
> GPL-2.0-only or BSD.
GPL-2.0 is GPL-2.0-only