• Riccardo Mancini's avatar
    perf bench: Add benchmark for evlist open/close operations · 4241eabf
    Riccardo Mancini authored
    This new benchmark finds the total time that is taken to open, mmap,
    enable, disable, munmap, close an evlist (time taken for new,
    create_maps, config, delete is not counted in).
    
    The evlist can be configured as in perf-record using the
    -a,-C,-e,-u,--per-thread,-t,-p options.
    
    The events can be duplicated in the evlist to quickly test performance
    with many events using the -n options.
    
    Furthermore, also the number of iterations used to calculate the
    statistics is customizable.
    
    Examples:
    - Open one dummy event system-wide:
    
      $ sudo ./perf bench internals evlist-open-close
        Number of cpus:       4
        Number of threads:    1
        Number of events:     1 (4 fds)
        Number of iterations: 100
        Average open-close took: 613.870 usec (+- 32.852 usec)
    
    - Open the group '{cs,cycles}' on CPU 0
    
      $ sudo ./perf bench internals evlist-open-close -e '{cs,cycles}' -C 0
        Number of cpus:       1
        Number of threads:    1
        Number of events:     2 (2 fds)
        Number of iterations: 100
        Average open-close took: 8503.220 usec (+- 252.652 usec)
    
    - Open 10 'cycles' events for user 0, calculate average over 100 runs
    
      $ sudo ./perf bench internals evlist-open-close -e cycles -n 10 -u 0 -i 100
        Number of cpus:       4
        Number of threads:    328
        Number of events:     10 (13120 fds)
        Number of iterations: 100
        Average open-close took: 180043.140 usec (+- 2295.889 usec)
    
    Committer notes:
    
    Replaced a deprecated bzero() call with designated initialized zeroing.
    
    Added some missing evlist allocation checks, one noted by Riccardo on
    the mailing list.
    
    Minor cosmetic changes (sent in private).
    Signed-off-by: default avatarRiccardo Mancini <rickyman7@gmail.com>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210809201101.277594-1-rickyman7@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    4241eabf
Build 536 Bytes