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 |
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
> 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 --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.