• Changbin Du's avatar
    perf stat: Fix counting when initial delay configured · 25f69c69
    Changbin Du authored
    When creating counters with initial delay configured, the enable_on_exec
    field is not set. So we need to enable the counters later. The problem
    is, when a workload is specified the target__none() is true. So we also
    need to check stat_config.initial_delay.
    
    In this change, we add a new field 'initial_delay' for struct target
    which could be shared by other subcommands. And define
    target__enable_on_exec() which returns whether enable_on_exec should be
    set on normal cases.
    
    Before this fix the event is not counted:
    
      $ ./perf stat -e instructions -D 100 sleep 2
      Events disabled
      Events enabled
    
       Performance counter stats for 'sleep 2':
    
           <not counted>      instructions
    
             1.901661124 seconds time elapsed
    
             0.001602000 seconds user
             0.000000000 seconds sys
    
    After fix it works:
    
      $ ./perf stat -e instructions -D 100 sleep 2
      Events disabled
      Events enabled
    
       Performance counter stats for 'sleep 2':
    
                 404,214      instructions
    
             1.901743475 seconds time elapsed
    
             0.001617000 seconds user
             0.000000000 seconds sys
    
    Fixes: c587e77e ("perf stat: Do not delay the workload with --delay")
    Signed-off-by: default avatarChangbin Du <changbin.du@huawei.com>
    Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Hui Wang <hw.huiwang@huawei.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20230302031146.2801588-2-changbin.du@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    25f69c69
builtin-stat.c 72.9 KB