Re: [PATCH V6 06/16] perf script: Use ULL for enum perf_output_field

Arnaldo Carvalho de Melo
2020-08-12T12:21:46Z

Em Mon, Aug 10, 2020 at 02:24:26PM -0700, Kan Liang escreveu:
> The Bitwise-Shift operator (1U << ) is used in the enum
> perf_output_field, which has already reached its capacity (32 items).
> If more items are added, a compile error will be triggered.
>
> Change the U to ULL, which extend the capacity to 64 items.
>
> The enum perf_output_field is only used to calculate a value for the
> 'fields' in the output structure. The 'fields' is u64. The change
> doesn't break anything.

Jiri did this already:

https://git.kernel.org/torvalds/c/60e5eeb56a1

> Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
> ---
> tools/perf/builtin-script.c | 64 ++++++++++++++++++-------------------
> 1 file changed, 32 insertions(+), 32 deletions(-)
>
> diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
> index 447457786362..214bec350971 100644
> --- a/tools/perf/builtin-script.c
> +++ b/tools/perf/builtin-script.c
> @@ -82,38 +82,38 @@ static bool native_arch;
> unsigned int scripting_max_stack = PERF_MAX_STACK_DEPTH;
>
> enum perf_output_field {
> - PERF_OUTPUT_COMM = 1U << 0,
> - PERF_OUTPUT_TID = 1U << 1,
> - PERF_OUTPUT_PID = 1U << 2,
> - PERF_OUTPUT_TIME = 1U << 3,
> - PERF_OUTPUT_CPU = 1U << 4,
> - PERF_OUTPUT_EVNAME = 1U << 5,
> - PERF_OUTPUT_TRACE = 1U << 6,
> - PERF_OUTPUT_IP = 1U << 7,
> - PERF_OUTPUT_SYM = 1U << 8,
> - PERF_OUTPUT_DSO = 1U << 9,
> - PERF_OUTPUT_ADDR = 1U << 10,
> - PERF_OUTPUT_SYMOFFSET = 1U << 11,
> - PERF_OUTPUT_SRCLINE = 1U << 12,
> - PERF_OUTPUT_PERIOD = 1U << 13,
> - PERF_OUTPUT_IREGS = 1U << 14,
> - PERF_OUTPUT_BRSTACK = 1U << 15,
> - PERF_OUTPUT_BRSTACKSYM = 1U << 16,
> - PERF_OUTPUT_DATA_SRC = 1U << 17,
> - PERF_OUTPUT_WEIGHT = 1U << 18,
> - PERF_OUTPUT_BPF_OUTPUT = 1U << 19,
> - PERF_OUTPUT_CALLINDENT = 1U << 20,
> - PERF_OUTPUT_INSN = 1U << 21,
> - PERF_OUTPUT_INSNLEN = 1U << 22,
> - PERF_OUTPUT_BRSTACKINSN = 1U << 23,
> - PERF_OUTPUT_BRSTACKOFF = 1U << 24,
> - PERF_OUTPUT_SYNTH = 1U << 25,
> - PERF_OUTPUT_PHYS_ADDR = 1U << 26,
> - PERF_OUTPUT_UREGS = 1U << 27,
> - PERF_OUTPUT_METRIC = 1U << 28,
> - PERF_OUTPUT_MISC = 1U << 29,
> - PERF_OUTPUT_SRCCODE = 1U << 30,
> - PERF_OUTPUT_IPC = 1U << 31,
> + PERF_OUTPUT_COMM = 1ULL << 0,
> + PERF_OUTPUT_TID = 1ULL << 1,
> + PERF_OUTPUT_PID = 1ULL << 2,
> + PERF_OUTPUT_TIME = 1ULL << 3,
> + PERF_OUTPUT_CPU = 1ULL << 4,
> + PERF_OUTPUT_EVNAME = 1ULL << 5,
> + PERF_OUTPUT_TRACE = 1ULL << 6,
> + PERF_OUTPUT_IP = 1ULL << 7,
> + PERF_OUTPUT_SYM = 1ULL << 8,
> + PERF_OUTPUT_DSO = 1ULL << 9,
> + PERF_OUTPUT_ADDR = 1ULL << 10,
> + PERF_OUTPUT_SYMOFFSET = 1ULL << 11,
> + PERF_OUTPUT_SRCLINE = 1ULL << 12,
> + PERF_OUTPUT_PERIOD = 1ULL << 13,
> + PERF_OUTPUT_IREGS = 1ULL << 14,
> + PERF_OUTPUT_BRSTACK = 1ULL << 15,
> + PERF_OUTPUT_BRSTACKSYM = 1ULL << 16,
> + PERF_OUTPUT_DATA_SRC = 1ULL << 17,
> + PERF_OUTPUT_WEIGHT = 1ULL << 18,
> + PERF_OUTPUT_BPF_OUTPUT = 1ULL << 19,
> + PERF_OUTPUT_CALLINDENT = 1ULL << 20,
> + PERF_OUTPUT_INSN = 1ULL << 21,
> + PERF_OUTPUT_INSNLEN = 1ULL << 22,
> + PERF_OUTPUT_BRSTACKINSN = 1ULL << 23,
> + PERF_OUTPUT_BRSTACKOFF = 1ULL << 24,
> + PERF_OUTPUT_SYNTH = 1ULL << 25,
> + PERF_OUTPUT_PHYS_ADDR = 1ULL << 26,
> + PERF_OUTPUT_UREGS = 1ULL << 27,
> + PERF_OUTPUT_METRIC = 1ULL << 28,
> + PERF_OUTPUT_MISC = 1ULL << 29,
> + PERF_OUTPUT_SRCCODE = 1ULL << 30,
> + PERF_OUTPUT_IPC = 1ULL << 31,
> };
>
> struct output_option {
> --
> 2.17.1
>

--

- Arnaldo