diff mbox series

[V8,03/15] tools/perf: Update TYPE_STATE_MAX_REGS to include max of regs in powerpc

Message ID 20240718084358.72242-4-atrajeev@linux.vnet.ibm.com (mailing list archive)
State Handled Elsewhere, archived
Headers show
Series Add data type profiling support for powerpc | expand

Commit Message

Athira Rajeev July 18, 2024, 8:43 a.m. UTC
TYPE_STATE_MAX_REGS is arch-dependent. Currently this is defined
to be 16. While checking if reg is valid using has_reg_type,
max value is checked using TYPE_STATE_MAX_REGS value. Define
this conditionally for powerpc.

Reviewed-and-tested-by: Kajol Jain <kjain@linux.ibm.com>
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Athira Rajeev<atrajeev@linux.vnet.ibm.com>
---
 tools/perf/util/annotate-data.h | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Arnaldo Carvalho de Melo July 23, 2024, 7:06 p.m. UTC | #1
On Thu, Jul 18, 2024 at 02:13:46PM +0530, Athira Rajeev wrote:
> TYPE_STATE_MAX_REGS is arch-dependent. Currently this is defined
> to be 16. While checking if reg is valid using has_reg_type,
> max value is checked using TYPE_STATE_MAX_REGS value. Define
> this conditionally for powerpc.

So what would happen if I get a perf.data file on a powerpc system and
then try to do data-type profiling on a x86 system?

I'm processing this now, but please consider fixing this up in some
other fashion, I think we have support for collecting registers in a way
that perf.data has all that is needed for us to print them in a cross
arch way, no?

I see there is the FIXME there, ok.

- Arnaldo
 
> Reviewed-and-tested-by: Kajol Jain <kjain@linux.ibm.com>
> Reviewed-by: Namhyung Kim <namhyung@kernel.org>
> Signed-off-by: Athira Rajeev<atrajeev@linux.vnet.ibm.com>
> ---
>  tools/perf/util/annotate-data.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tools/perf/util/annotate-data.h b/tools/perf/util/annotate-data.h
> index 6fe8ee8b8410..992b7ce4bd11 100644
> --- a/tools/perf/util/annotate-data.h
> +++ b/tools/perf/util/annotate-data.h
> @@ -189,7 +189,11 @@ struct type_state_stack {
>  };
>  
>  /* FIXME: This should be arch-dependent */
> +#ifdef __powerpc__
> +#define TYPE_STATE_MAX_REGS  32
> +#else
>  #define TYPE_STATE_MAX_REGS  16
> +#endif
>  
>  /*
>   * State table to maintain type info in each register and stack location.
> -- 
> 2.43.0
Athira Rajeev July 24, 2024, 5:38 a.m. UTC | #2
> On 24 Jul 2024, at 12:36 AM, Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> 
> On Thu, Jul 18, 2024 at 02:13:46PM +0530, Athira Rajeev wrote:
>> TYPE_STATE_MAX_REGS is arch-dependent. Currently this is defined
>> to be 16. While checking if reg is valid using has_reg_type,
>> max value is checked using TYPE_STATE_MAX_REGS value. Define
>> this conditionally for powerpc.
> 
> So what would happen if I get a perf.data file on a powerpc system and
> then try to do data-type profiling on a x86 system?
> 
> I'm processing this now, but please consider fixing this up in some
> other fashion, I think we have support for collecting registers in a way
> that perf.data has all that is needed for us to print them in a cross
> arch way, no?
> 
> I see there is the FIXME there, ok.
> 
> - Arnaldo
> 

Hi Arnaldo

Sure,  thanks.
>> Reviewed-and-tested-by: Kajol Jain <kjain@linux.ibm.com>
>> Reviewed-by: Namhyung Kim <namhyung@kernel.org>
>> Signed-off-by: Athira Rajeev<atrajeev@linux.vnet.ibm.com>
>> ---
>> tools/perf/util/annotate-data.h | 4 ++++
>> 1 file changed, 4 insertions(+)
>> 
>> diff --git a/tools/perf/util/annotate-data.h b/tools/perf/util/annotate-data.h
>> index 6fe8ee8b8410..992b7ce4bd11 100644
>> --- a/tools/perf/util/annotate-data.h
>> +++ b/tools/perf/util/annotate-data.h
>> @@ -189,7 +189,11 @@ struct type_state_stack {
>> };
>> 
>> /* FIXME: This should be arch-dependent */
>> +#ifdef __powerpc__
>> +#define TYPE_STATE_MAX_REGS  32
>> +#else
>> #define TYPE_STATE_MAX_REGS  16
>> +#endif
>> 
>> /*
>>  * State table to maintain type info in each register and stack location.
>> -- 
>> 2.43.0
diff mbox series

Patch

diff --git a/tools/perf/util/annotate-data.h b/tools/perf/util/annotate-data.h
index 6fe8ee8b8410..992b7ce4bd11 100644
--- a/tools/perf/util/annotate-data.h
+++ b/tools/perf/util/annotate-data.h
@@ -189,7 +189,11 @@  struct type_state_stack {
 };
 
 /* FIXME: This should be arch-dependent */
+#ifdef __powerpc__
+#define TYPE_STATE_MAX_REGS  32
+#else
 #define TYPE_STATE_MAX_REGS  16
+#endif
 
 /*
  * State table to maintain type info in each register and stack location.