On Tue, Feb 02, 2021 at 06:01:15PM +0900, Namhyung Kim wrote:
> Hello,
> 
> This is to optimize the event synthesis during perf record.
> 
> Changes in v3:
>  * remove unnecessary pid check
>  * update change log in patch #2

Acked-by: Jiri Olsa <jo...@redhat.com>

thanks,
jirka

> 
> The first patch is to reduce memory usage when many threads are used.
> The second is to avoid unncessary syscalls for kernel threads.  And
> the last one is to reduce the number of threads to iterate when new
> threads are being created at the same time.
> 
> Unfortunately there's no dramatic improvement here but I can see ~5%
> gain in the 'perf bench internals synthesize' on a big machine.
> (The numbers are not stable though)
> 
> 
> Before:
>   # perf bench internals synthesize --mt -M1 -I 100
>   # Running 'internals/synthesize' benchmark:
>   Computing performance of multi threaded perf event synthesis by
>   synthesizing events on CPU 0:
>     Number of synthesis threads: 1
>       Average synthesis took: 68831.480 usec (+- 101.450 usec)
>       Average num. events: 9982.000 (+- 0.000)
>       Average time per event 6.896 usec
> 
> 
> After:
>   # perf bench internals synthesize --mt -M1 -I 100
>   # Running 'internals/synthesize' benchmark:
>   Computing performance of multi threaded perf event synthesis by
>   synthesizing events on CPU 0:
>     Number of synthesis threads: 1
>       Average synthesis took: 65036.370 usec (+- 158.121 usec)
>       Average num. events: 9982.000 (+- 0.000)
>       Average time per event 6.515 usec
> 
> 
> Thanks,
> Namhyung
> 
> 
> Namhyung Kim (3):
>   perf tools: Use /proc/<PID>/task/<TID>/status for synthesis
>   perf tools: Skip MMAP record synthesis for kernel threads
>   perf tools: Use scandir() to iterate threads
> 
>  tools/perf/util/synthetic-events.c | 83 +++++++++++++++++++-----------
>  1 file changed, 53 insertions(+), 30 deletions(-)
> 
> -- 
> 2.30.0.365.g02bc693789-goog
> 

Reply via email to