On Fri, Jan 29, 2021 at 02:48:58PM +0900, Namhyung Kim wrote: > Hello, > > This is to optimize the event synthesis during perf record. > > 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
heya, is there any change to previous version? jirka > > tools/perf/util/synthetic-events.c | 88 ++++++++++++++++++++---------- > 1 file changed, 58 insertions(+), 30 deletions(-) > > -- > 2.30.0.365.g02bc693789-goog >