[v6,01/47] perf map: Improve map/unmap parameter names

Message ID 20231207011722.1220634-2-irogers@google.com
State New
Headers
Series maps/threads/dsos memory improvements and fixes |

Commit Message

Ian Rogers Dec. 7, 2023, 1:16 a.m. UTC
  The u64 values are either absolute or relative, try to hint better in
the parameter names.

Suggested-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/util/map.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
  

Comments

Namhyung Kim Dec. 11, 2023, 11:38 p.m. UTC | #1
On Wed, Dec 6, 2023 at 5:17 PM Ian Rogers <irogers@google.com> wrote:
>
> The u64 values are either absolute or relative, try to hint better in
> the parameter names.
>
> Suggested-by: Namhyung Kim <namhyung@kernel.org>
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  tools/perf/util/map.h | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
> index 3a3b7757da5f..49756716cb13 100644
> --- a/tools/perf/util/map.h
> +++ b/tools/perf/util/map.h
> @@ -105,25 +105,25 @@ static inline u64 map__dso_map_ip(const struct map *map, u64 ip)
>  }
>
>  /* dso rip -> ip */
> -static inline u64 map__dso_unmap_ip(const struct map *map, u64 ip)
> +static inline u64 map__dso_unmap_ip(const struct map *map, u64 rip)
>  {
> -       return ip + map__start(map) - map__pgoff(map);
> +       return rip + map__start(map) - map__pgoff(map);
>  }
>
> -static inline u64 map__map_ip(const struct map *map, u64 ip)
> +static inline u64 map__map_ip(const struct map *map, u64 ip_or_rip)

I'm afraid it's gonna be more confusing.  Can we say just 'rip'?

>  {
>         if ((RC_CHK_ACCESS(map)->mapping_type) == MAPPING_TYPE__DSO)
> -               return map__dso_map_ip(map, ip);
> +               return map__dso_map_ip(map, ip_or_rip);
>         else
> -               return ip;
> +               return ip_or_rip;
>  }
>
> -static inline u64 map__unmap_ip(const struct map *map, u64 ip)
> +static inline u64 map__unmap_ip(const struct map *map, u64 ip_or_rip)

Ditto.

Thanks,
Namhyung


>  {
>         if ((RC_CHK_ACCESS(map)->mapping_type) == MAPPING_TYPE__DSO)
> -               return map__dso_unmap_ip(map, ip);
> +               return map__dso_unmap_ip(map, ip_or_rip);
>         else
> -               return ip;
> +               return ip_or_rip;
>  }
>
>  /* rip/ip <-> addr suitable for passing to `objdump --start-address=` */
> --
> 2.43.0.rc2.451.g8631bc7472-goog
>
  
Namhyung Kim Dec. 11, 2023, 11:39 p.m. UTC | #2
On Mon, Dec 11, 2023 at 3:38 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> On Wed, Dec 6, 2023 at 5:17 PM Ian Rogers <irogers@google.com> wrote:
> >
> > The u64 values are either absolute or relative, try to hint better in
> > the parameter names.
> >
> > Suggested-by: Namhyung Kim <namhyung@kernel.org>
> > Signed-off-by: Ian Rogers <irogers@google.com>
> > ---
> >  tools/perf/util/map.h | 16 ++++++++--------
> >  1 file changed, 8 insertions(+), 8 deletions(-)
> >
> > diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
> > index 3a3b7757da5f..49756716cb13 100644
> > --- a/tools/perf/util/map.h
> > +++ b/tools/perf/util/map.h
> > @@ -105,25 +105,25 @@ static inline u64 map__dso_map_ip(const struct map *map, u64 ip)
> >  }
> >
> >  /* dso rip -> ip */
> > -static inline u64 map__dso_unmap_ip(const struct map *map, u64 ip)
> > +static inline u64 map__dso_unmap_ip(const struct map *map, u64 rip)
> >  {
> > -       return ip + map__start(map) - map__pgoff(map);
> > +       return rip + map__start(map) - map__pgoff(map);
> >  }
> >
> > -static inline u64 map__map_ip(const struct map *map, u64 ip)
> > +static inline u64 map__map_ip(const struct map *map, u64 ip_or_rip)
>
> I'm afraid it's gonna be more confusing.  Can we say just 'rip'?

Oh.. I think it should be 'ip'.

>
> >  {
> >         if ((RC_CHK_ACCESS(map)->mapping_type) == MAPPING_TYPE__DSO)
> > -               return map__dso_map_ip(map, ip);
> > +               return map__dso_map_ip(map, ip_or_rip);
> >         else
> > -               return ip;
> > +               return ip_or_rip;
> >  }
> >
> > -static inline u64 map__unmap_ip(const struct map *map, u64 ip)
> > +static inline u64 map__unmap_ip(const struct map *map, u64 ip_or_rip)
>
> Ditto.
>
> Thanks,
> Namhyung
>
>
> >  {
> >         if ((RC_CHK_ACCESS(map)->mapping_type) == MAPPING_TYPE__DSO)
> > -               return map__dso_unmap_ip(map, ip);
> > +               return map__dso_unmap_ip(map, ip_or_rip);
> >         else
> > -               return ip;
> > +               return ip_or_rip;
> >  }
> >
> >  /* rip/ip <-> addr suitable for passing to `objdump --start-address=` */
> > --
> > 2.43.0.rc2.451.g8631bc7472-goog
> >
  
Ian Rogers Dec. 11, 2023, 11:52 p.m. UTC | #3
On Mon, Dec 11, 2023 at 3:39 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> On Mon, Dec 11, 2023 at 3:38 PM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > On Wed, Dec 6, 2023 at 5:17 PM Ian Rogers <irogers@google.com> wrote:
> > >
> > > The u64 values are either absolute or relative, try to hint better in
> > > the parameter names.
> > >
> > > Suggested-by: Namhyung Kim <namhyung@kernel.org>
> > > Signed-off-by: Ian Rogers <irogers@google.com>
> > > ---
> > >  tools/perf/util/map.h | 16 ++++++++--------
> > >  1 file changed, 8 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
> > > index 3a3b7757da5f..49756716cb13 100644
> > > --- a/tools/perf/util/map.h
> > > +++ b/tools/perf/util/map.h
> > > @@ -105,25 +105,25 @@ static inline u64 map__dso_map_ip(const struct map *map, u64 ip)
> > >  }
> > >
> > >  /* dso rip -> ip */
> > > -static inline u64 map__dso_unmap_ip(const struct map *map, u64 ip)
> > > +static inline u64 map__dso_unmap_ip(const struct map *map, u64 rip)
> > >  {
> > > -       return ip + map__start(map) - map__pgoff(map);
> > > +       return rip + map__start(map) - map__pgoff(map);
> > >  }
> > >
> > > -static inline u64 map__map_ip(const struct map *map, u64 ip)
> > > +static inline u64 map__map_ip(const struct map *map, u64 ip_or_rip)
> >
> > I'm afraid it's gonna be more confusing.  Can we say just 'rip'?
>
> Oh.. I think it should be 'ip'.

But sometimes it is an ip and sometimes it is an rip, hence the long
name. I don't think this really affects much so I'd prefer to stick
with the intention revealing name if possible.

Thanks,
Ian

> >
> > >  {
> > >         if ((RC_CHK_ACCESS(map)->mapping_type) == MAPPING_TYPE__DSO)
> > > -               return map__dso_map_ip(map, ip);
> > > +               return map__dso_map_ip(map, ip_or_rip);
> > >         else
> > > -               return ip;
> > > +               return ip_or_rip;
> > >  }
> > >
> > > -static inline u64 map__unmap_ip(const struct map *map, u64 ip)
> > > +static inline u64 map__unmap_ip(const struct map *map, u64 ip_or_rip)
> >
> > Ditto.
> >
> > Thanks,
> > Namhyung
> >
> >
> > >  {
> > >         if ((RC_CHK_ACCESS(map)->mapping_type) == MAPPING_TYPE__DSO)
> > > -               return map__dso_unmap_ip(map, ip);
> > > +               return map__dso_unmap_ip(map, ip_or_rip);
> > >         else
> > > -               return ip;
> > > +               return ip_or_rip;
> > >  }
> > >
> > >  /* rip/ip <-> addr suitable for passing to `objdump --start-address=` */
> > > --
> > > 2.43.0.rc2.451.g8631bc7472-goog
> > >
  
Namhyung Kim Dec. 19, 2023, 6:06 a.m. UTC | #4
On Mon, Dec 11, 2023 at 3:52 PM Ian Rogers <irogers@google.com> wrote:
>
> On Mon, Dec 11, 2023 at 3:39 PM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > On Mon, Dec 11, 2023 at 3:38 PM Namhyung Kim <namhyung@kernel.org> wrote:
> > >
> > > On Wed, Dec 6, 2023 at 5:17 PM Ian Rogers <irogers@google.com> wrote:
> > > >
> > > > The u64 values are either absolute or relative, try to hint better in
> > > > the parameter names.
> > > >
> > > > Suggested-by: Namhyung Kim <namhyung@kernel.org>
> > > > Signed-off-by: Ian Rogers <irogers@google.com>
> > > > ---
> > > >  tools/perf/util/map.h | 16 ++++++++--------
> > > >  1 file changed, 8 insertions(+), 8 deletions(-)
> > > >
> > > > diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
> > > > index 3a3b7757da5f..49756716cb13 100644
> > > > --- a/tools/perf/util/map.h
> > > > +++ b/tools/perf/util/map.h
> > > > @@ -105,25 +105,25 @@ static inline u64 map__dso_map_ip(const struct map *map, u64 ip)
> > > >  }
> > > >
> > > >  /* dso rip -> ip */
> > > > -static inline u64 map__dso_unmap_ip(const struct map *map, u64 ip)
> > > > +static inline u64 map__dso_unmap_ip(const struct map *map, u64 rip)
> > > >  {
> > > > -       return ip + map__start(map) - map__pgoff(map);
> > > > +       return rip + map__start(map) - map__pgoff(map);
> > > >  }
> > > >
> > > > -static inline u64 map__map_ip(const struct map *map, u64 ip)
> > > > +static inline u64 map__map_ip(const struct map *map, u64 ip_or_rip)
> > >
> > > I'm afraid it's gonna be more confusing.  Can we say just 'rip'?
> >
> > Oh.. I think it should be 'ip'.
>
> But sometimes it is an ip and sometimes it is an rip, hence the long
> name. I don't think this really affects much so I'd prefer to stick
> with the intention revealing name if possible.

I don't think the intention is to mix ip and rip.

Does it really pass (already mapped) rip to the map function
again?  I know rip and ip can be identical but it doesn't mean
it can use rip to the map function.

Thanks,
Namhyung
  

Patch

diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
index 3a3b7757da5f..49756716cb13 100644
--- a/tools/perf/util/map.h
+++ b/tools/perf/util/map.h
@@ -105,25 +105,25 @@  static inline u64 map__dso_map_ip(const struct map *map, u64 ip)
 }
 
 /* dso rip -> ip */
-static inline u64 map__dso_unmap_ip(const struct map *map, u64 ip)
+static inline u64 map__dso_unmap_ip(const struct map *map, u64 rip)
 {
-	return ip + map__start(map) - map__pgoff(map);
+	return rip + map__start(map) - map__pgoff(map);
 }
 
-static inline u64 map__map_ip(const struct map *map, u64 ip)
+static inline u64 map__map_ip(const struct map *map, u64 ip_or_rip)
 {
 	if ((RC_CHK_ACCESS(map)->mapping_type) == MAPPING_TYPE__DSO)
-		return map__dso_map_ip(map, ip);
+		return map__dso_map_ip(map, ip_or_rip);
 	else
-		return ip;
+		return ip_or_rip;
 }
 
-static inline u64 map__unmap_ip(const struct map *map, u64 ip)
+static inline u64 map__unmap_ip(const struct map *map, u64 ip_or_rip)
 {
 	if ((RC_CHK_ACCESS(map)->mapping_type) == MAPPING_TYPE__DSO)
-		return map__dso_unmap_ip(map, ip);
+		return map__dso_unmap_ip(map, ip_or_rip);
 	else
-		return ip;
+		return ip_or_rip;
 }
 
 /* rip/ip <-> addr suitable for passing to `objdump --start-address=` */