Changbin Du 25f69c69bc perf stat: Fix counting when initial delay configured
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: c587e77e100fa40e ("perf stat: Do not delay the workload with --delay")
Signed-off-by: Changbin Du <changbin.du@huawei.com>
Acked-by: Namhyung 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.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2023-03-02 17:39:03 -03:00
..
2022-01-12 17:01:38 -08:00
2022-06-28 12:05:25 -03:00
2022-10-04 08:55:21 -03:00
2022-11-16 16:00:45 -03:00
2022-11-16 16:00:45 -03:00
2022-10-04 08:55:22 -03:00
2021-04-29 10:30:58 -03:00
2021-08-11 09:35:44 -03:00
2022-10-04 08:55:20 -03:00
2022-06-23 11:54:22 -03:00
2022-12-14 15:28:18 -03:00
2022-12-14 15:28:18 -03:00
2023-01-23 10:00:47 -03:00
2022-10-06 08:03:52 -03:00
2021-11-07 12:27:38 -03:00
2021-02-03 13:10:44 -03:00
2021-07-15 17:30:22 -03:00
2022-02-14 16:56:32 -03:00
2022-12-14 15:28:18 -03:00
2022-12-14 15:28:18 -03:00
2023-02-03 17:24:02 -03:00
2022-10-04 08:55:22 -03:00
2022-10-04 08:55:22 -03:00
2020-10-14 13:34:26 -03:00
2021-02-17 15:15:06 -03:00
2022-10-04 08:55:23 -03:00
2022-06-23 11:54:22 -03:00
2022-10-04 08:55:20 -03:00