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

2020-08-12 Thread Liang, Kan




On 8/12/2020 8:21 AM, Arnaldo Carvalho de Melo wrote:

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


Thanks for pointing it out.

I will rebase the code on top of it.

Thanks,
Kan

  

Signed-off-by: Kan Liang 
---
  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





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

2020-08-12 Thread Arnaldo Carvalho de Melo
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 
> ---
>  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