1. 17 Nov, 2017 2 commits
    • Jiri Olsa's avatar
      perf tools: Optimize sample parsing for ordered events · 93d10af2
      Jiri Olsa authored
      Currently when using ordered events we parse the sample twice (the
      perf_evlist__parse_sample function). Once before we queue the sample for
      sorting:
      
        perf_session__process_event
          perf_evlist__parse_sample(sample)
          perf_session__queue_event(sample.time)
      
      And then when we deliver the sorted sample:
      
        ordered_events__deliver_event
          perf_evlist__parse_sample
          perf_session__deliver_event
      
      We can skip the initial full sample parsing by using
      perf_evlist__parse_sample_timestamp function, which got introduced
      earlier. The new path looks like:
      
        perf_session__process_event
          perf_evlist__parse_sample_timestamp
          perf_session__queue_event
      
        ordered_events__deliver_event
          perf_session__deliver_event
            perf_evlist__parse_sample
      
      It saves some instructions and is slightly faster:
      
      Before:
       Performance counter stats for './perf.old report --stdio' (5 runs):
      
          64,396,007,225      cycles:u                                                      ( +-  0.97% )
         105,882,112,735      instructions:u            #    1.64  insn per cycle           ( +-  0.00% )
      
            21.618103465 seconds time elapsed                                          ( +-  1.12% )
      
      After:
       Performance counter stats for './perf report --stdio' (5 runs):
      
          60,567,807,182      cycles:u                                                      ( +-  0.40% )
         104,853,333,514      instructions:u            #    1.73  insn per cycle           ( +-  0.00% )
      
            20.168895243 seconds time elapsed                                          ( +-  0.32% )
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-cjp2tuk0qkjs9dxzlpmm34ua@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      93d10af2
    • Jiri Olsa's avatar
      perf ordered_events: Pass timestamp arg in perf_session__queue_event · dc83e139
      Jiri Olsa authored
      There's no need to pass whole sample data, because it's only timestamp
      that is used.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-xd1hpoze3kgb1rb639o3vehb@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      dc83e139
  2. 16 Nov, 2017 38 commits