All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Arnaldo Carvalho de Melo" <acme@kernel.org>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	"Jiri Olsa" <jolsa@kernel.org>,
	"Adrian Hunter" <adrian.hunter@intel.com>,
	"Kan Liang" <kan.liang@linux.intel.com>,
	"John Garry" <john.g.garry@oracle.com>,
	"Will Deacon" <will@kernel.org>,
	"James Clark" <james.clark@linaro.org>,
	"Mike Leach" <mike.leach@linaro.org>,
	"Leo Yan" <leo.yan@linux.dev>,
	"Masami Hiramatsu (Google)" <mhiramat@kernel.org>,
	"Ravi Bangoria" <ravi.bangoria@amd.com>,
	"Charlie Jenkins" <charlie@rivosinc.com>,
	"Colin Ian King" <colin.i.king@gmail.com>,
	"Andi Kleen" <ak@linux.intel.com>,
	"Dmitry Vyukov" <dvyukov@google.com>,
	"Graham Woodward" <graham.woodward@arm.com>,
	"Ilkka Koskinen" <ilkka@os.amperecomputing.com>,
	"Zhongqiu Han" <quic_zhonhan@quicinc.com>,
	"Yicong Yang" <yangyicong@hisilicon.com>,
	"Athira Rajeev" <atrajeev@linux.ibm.com>,
	"Kajol Jain" <kjain@linux.ibm.com>,
	"Li Huafei" <lihuafei1@huawei.com>,
	"Steinar H. Gunderson" <sesse@google.com>,
	"Stephen Brennan" <stephen.s.brennan@oracle.com>,
	"Chun-Tse Shao" <ctshao@google.com>,
	"Yujie Liu" <yujie.liu@intel.com>,
	"Dr. David Alan Gilbert" <linux@treblig.org>,
	"Levi Yun" <yeoreum.yun@arm.com>,
	"Howard Chu" <howardchu95@gmail.com>,
	"Weilin Wang" <weilin.wang@intel.com>,
	"Thomas Falcon" <thomas.falcon@intel.com>,
	"Matt Fleming" <matt@readmodwrite.com>,
	"Veronika Molnarova" <vmolnaro@redhat.com>,
	"Krzysztof Łopatowski" <krzysztof.m.lopatowski@gmail.com>,
	"Zixian Cai" <fzczx123@gmail.com>,
	"Steve Clevenger" <scclevenger@os.amperecomputing.com>,
	"Ben Gainey" <ben.gainey@arm.com>,
	"Chaitanya S Prakash" <chaitanyas.prakash@arm.com>,
	"Martin Liska" <martin.liska@hey.com>,
	"Martin Liška" <m.liska@foxlink.cz>, "Song Liu" <song@kernel.org>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v5 03/23] perf build-id: Change sprintf functions to snprintf
Date: Tue, 1 Jul 2025 09:51:28 -0700	[thread overview]
Message-ID: <aGQSEIJNbzjbLrB2@google.com> (raw)
In-Reply-To: <20250628045017.1361563-4-irogers@google.com>

On Fri, Jun 27, 2025 at 09:49:57PM -0700, Ian Rogers wrote:
> Pass in a size argument rather than implying all build id strings must
> be SBUILD_ID_SIZE.

I got these errors:

  CC      util/parse-event.o                                                   
util/probe-event.c: In function '__show_line_range':                            
util/probe-event.c:1093:17: error: implicit declaration of function 'build_id__sprintf'; did you mean 'build_id__snprintf'? [-Wimplicit-function-declaration]
 1093 |                 build_id__sprintf(&bid, sbuild_id);                     
      |                 ^~~~~~~~~~~~~~~~~                                       
      |                 build_id__snprintf    
  CC      util/parse-finder.o                                                   
util/probe-finder.c: In function 'find_probe_point_lazy':                       
util/probe-finder.c:863:25: error: implicit declaration of function 'build_id__sprintf'; did you mean 'build_id__snprintf'? [-Wimplicit-function-declaration]
  863 |                         build_id__sprintf(&bid, sbuild_id);             
      |                         ^~~~~~~~~~~~~~~~~                               
      |                         build_id__snprintf                              
make[4]: *** [/usr/local/google/home/namhyung/project/linux/tools/build/Makefile.build:86: util/probe-finder.o] Error 1
make[4]: *** Waiting for unfinished jobs....                                    
make[4]: *** [/usr/local/google/home/namhyung/project/linux/tools/build/Makefile.build:85: util/probe-event.o] Error 1
make[3]: *** [/usr/local/google/home/namhyung/project/linux/tools/build/Makefile.build:142: util] Error 2
make[2]: *** [Makefile.perf:797: perf-util-in.o] Error 2                        
make[2]: *** Waiting for unfinished jobs....                                    
make[1]: *** [Makefile.perf:289: sub-make] Error 2                              
make: *** [Makefile:76: all] Error 2

Thanks,
Namhyung

> 
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  tools/perf/builtin-buildid-cache.c            | 12 +++----
>  tools/perf/builtin-buildid-list.c             |  6 ++--
>  tools/perf/util/build-id.c                    | 33 ++++++++-----------
>  tools/perf/util/build-id.h                    |  6 ++--
>  tools/perf/util/disasm.c                      |  2 +-
>  tools/perf/util/dso.c                         |  4 +--
>  tools/perf/util/dsos.c                        |  2 +-
>  tools/perf/util/event.c                       |  2 +-
>  tools/perf/util/header.c                      |  2 +-
>  tools/perf/util/map.c                         |  2 +-
>  tools/perf/util/probe-file.c                  |  4 +--
>  .../scripting-engines/trace-event-python.c    |  7 ++--
>  tools/perf/util/symbol.c                      |  2 +-
>  13 files changed, 38 insertions(+), 46 deletions(-)
> 
> diff --git a/tools/perf/builtin-buildid-cache.c b/tools/perf/builtin-buildid-cache.c
> index b0511d16aeb6..3f7739b21148 100644
> --- a/tools/perf/builtin-buildid-cache.c
> +++ b/tools/perf/builtin-buildid-cache.c
> @@ -31,7 +31,7 @@
>  #include <linux/string.h>
>  #include <linux/err.h>
>  
> -static int build_id_cache__kcore_buildid(const char *proc_dir, char *sbuildid)
> +static int build_id_cache__kcore_buildid(const char *proc_dir, char *sbuildid, size_t sbuildid_size)
>  {
>  	char root_dir[PATH_MAX];
>  	char *p;
> @@ -42,7 +42,7 @@ static int build_id_cache__kcore_buildid(const char *proc_dir, char *sbuildid)
>  	if (!p)
>  		return -1;
>  	*p = '\0';
> -	return sysfs__sprintf_build_id(root_dir, sbuildid);
> +	return sysfs__snprintf_build_id(root_dir, sbuildid, sbuildid_size);
>  }
>  
>  static int build_id_cache__kcore_dir(char *dir, size_t sz)
> @@ -128,7 +128,7 @@ static int build_id_cache__add_kcore(const char *filename, bool force)
>  		return -1;
>  	*p = '\0';
>  
> -	if (build_id_cache__kcore_buildid(from_dir, sbuildid) < 0)
> +	if (build_id_cache__kcore_buildid(from_dir, sbuildid, sizeof(sbuildid)) < 0)
>  		return -1;
>  
>  	scnprintf(to_dir, sizeof(to_dir), "%s/%s/%s",
> @@ -187,7 +187,7 @@ static int build_id_cache__add_file(const char *filename, struct nsinfo *nsi)
>  		return -1;
>  	}
>  
> -	build_id__sprintf(&bid, sbuild_id);
> +	build_id__snprintf(&bid, sbuild_id, sizeof(sbuild_id));
>  	err = build_id_cache__add_s(sbuild_id, filename, nsi,
>  				    false, false);
>  	pr_debug("Adding %s %s: %s\n", sbuild_id, filename,
> @@ -211,7 +211,7 @@ static int build_id_cache__remove_file(const char *filename, struct nsinfo *nsi)
>  		return -1;
>  	}
>  
> -	build_id__sprintf(&bid, sbuild_id);
> +	build_id__snprintf(&bid, sbuild_id, sizeof(sbuild_id));
>  	err = build_id_cache__remove_s(sbuild_id);
>  	pr_debug("Removing %s %s: %s\n", sbuild_id, filename,
>  		 err ? "FAIL" : "Ok");
> @@ -317,7 +317,7 @@ static int build_id_cache__update_file(const char *filename, struct nsinfo *nsi)
>  	}
>  	err = 0;
>  
> -	build_id__sprintf(&bid, sbuild_id);
> +	build_id__snprintf(&bid, sbuild_id, sizeof(sbuild_id));
>  	if (build_id_cache__cached(sbuild_id))
>  		err = build_id_cache__remove_s(sbuild_id);
>  
> diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c
> index 52dfacaff8e3..ba8ba0303920 100644
> --- a/tools/perf/builtin-buildid-list.c
> +++ b/tools/perf/builtin-buildid-list.c
> @@ -31,7 +31,7 @@ static int buildid__map_cb(struct map *map, void *arg __maybe_unused)
>  
>  	memset(bid_buf, 0, sizeof(bid_buf));
>  	if (dso__has_build_id(dso))
> -		build_id__sprintf(dso__bid_const(dso), bid_buf);
> +		build_id__snprintf(dso__bid_const(dso), bid_buf, sizeof(bid_buf));
>  	printf("%s %16" PRIx64 " %16" PRIx64, bid_buf, map__start(map), map__end(map));
>  	if (dso_long_name != NULL)
>  		printf(" %s", dso_long_name);
> @@ -57,7 +57,7 @@ static int sysfs__fprintf_build_id(FILE *fp)
>  	char sbuild_id[SBUILD_ID_SIZE];
>  	int ret;
>  
> -	ret = sysfs__sprintf_build_id("/", sbuild_id);
> +	ret = sysfs__snprintf_build_id("/", sbuild_id, sizeof(sbuild_id));
>  	if (ret != sizeof(sbuild_id))
>  		return ret < 0 ? ret : -EINVAL;
>  
> @@ -69,7 +69,7 @@ static int filename__fprintf_build_id(const char *name, FILE *fp)
>  	char sbuild_id[SBUILD_ID_SIZE];
>  	int ret;
>  
> -	ret = filename__sprintf_build_id(name, sbuild_id);
> +	ret = filename__snprintf_build_id(name, sbuild_id, sizeof(sbuild_id));
>  	if (ret != sizeof(sbuild_id))
>  		return ret < 0 ? ret : -EINVAL;
>  
> diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c
> index 5bc2040bdd0d..aa35dceace90 100644
> --- a/tools/perf/util/build-id.c
> +++ b/tools/perf/util/build-id.c
> @@ -67,24 +67,17 @@ int build_id__mark_dso_hit(const struct perf_tool *tool __maybe_unused,
>  	return 0;
>  }
>  
> -int build_id__sprintf(const struct build_id *build_id, char *bf)
> +int build_id__snprintf(const struct build_id *build_id, char *bf, size_t bf_size)
>  {
> -	char *bid = bf;
> -	const u8 *raw = build_id->data;
> -	size_t i;
> -
> -	bf[0] = 0x0;
> +	size_t offs = 0;
>  
> -	for (i = 0; i < build_id->size; ++i) {
> -		sprintf(bid, "%02x", *raw);
> -		++raw;
> -		bid += 2;
> -	}
> +	for (size_t i = 0; i < build_id->size && offs < bf_size; ++i)
> +		offs += snprintf(bf + offs, bf_size - offs, "%02x", build_id->data[i]);
>  
> -	return (bid - bf) + 1;
> +	return offs;
>  }
>  
> -int sysfs__sprintf_build_id(const char *root_dir, char *sbuild_id)
> +int sysfs__snprintf_build_id(const char *root_dir, char *sbuild_id, size_t sbuild_id_size)
>  {
>  	char notes[PATH_MAX];
>  	struct build_id bid;
> @@ -99,10 +92,10 @@ int sysfs__sprintf_build_id(const char *root_dir, char *sbuild_id)
>  	if (ret < 0)
>  		return ret;
>  
> -	return build_id__sprintf(&bid, sbuild_id);
> +	return build_id__snprintf(&bid, sbuild_id, sbuild_id_size);
>  }
>  
> -int filename__sprintf_build_id(const char *pathname, char *sbuild_id)
> +int filename__snprintf_build_id(const char *pathname, char *sbuild_id, size_t sbuild_id_size)
>  {
>  	struct build_id bid;
>  	int ret;
> @@ -111,7 +104,7 @@ int filename__sprintf_build_id(const char *pathname, char *sbuild_id)
>  	if (ret < 0)
>  		return ret;
>  
> -	return build_id__sprintf(&bid, sbuild_id);
> +	return build_id__snprintf(&bid, sbuild_id, sbuild_id_size);
>  }
>  
>  /* asnprintf consolidates asprintf and snprintf */
> @@ -212,9 +205,9 @@ static bool build_id_cache__valid_id(char *sbuild_id)
>  		return false;
>  
>  	if (!strcmp(pathname, DSO__NAME_KALLSYMS))
> -		ret = sysfs__sprintf_build_id("/", real_sbuild_id);
> +		ret = sysfs__snprintf_build_id("/", real_sbuild_id, sizeof(real_sbuild_id));
>  	else if (pathname[0] == '/')
> -		ret = filename__sprintf_build_id(pathname, real_sbuild_id);
> +		ret = filename__snprintf_build_id(pathname, real_sbuild_id, sizeof(real_sbuild_id));
>  	else
>  		ret = -EINVAL;	/* Should we support other special DSO cache? */
>  	if (ret >= 0)
> @@ -243,7 +236,7 @@ char *__dso__build_id_filename(const struct dso *dso, char *bf, size_t size,
>  	if (!dso__has_build_id(dso))
>  		return NULL;
>  
> -	build_id__sprintf(dso__bid_const(dso), sbuild_id);
> +	build_id__snprintf(dso__bid_const(dso), sbuild_id, sizeof(sbuild_id));
>  	linkname = build_id_cache__linkname(sbuild_id, NULL, 0);
>  	if (!linkname)
>  		return NULL;
> @@ -769,7 +762,7 @@ static int build_id_cache__add_b(const struct build_id *bid,
>  {
>  	char sbuild_id[SBUILD_ID_SIZE];
>  
> -	build_id__sprintf(bid, sbuild_id);
> +	build_id__snprintf(bid, sbuild_id, sizeof(sbuild_id));
>  
>  	return __build_id_cache__add_s(sbuild_id, name, nsi, is_kallsyms,
>  				       is_vdso, proper_name, root_dir);
> diff --git a/tools/perf/util/build-id.h b/tools/perf/util/build-id.h
> index e3e0a446ff0c..47e621cebe1b 100644
> --- a/tools/perf/util/build-id.h
> +++ b/tools/perf/util/build-id.h
> @@ -21,10 +21,10 @@ struct feat_fd;
>  struct nsinfo;
>  
>  void build_id__init(struct build_id *bid, const u8 *data, size_t size);
> -int build_id__sprintf(const struct build_id *build_id, char *bf);
> +int build_id__snprintf(const struct build_id *build_id, char *bf, size_t bf_size);
>  bool build_id__is_defined(const struct build_id *bid);
> -int sysfs__sprintf_build_id(const char *root_dir, char *sbuild_id);
> -int filename__sprintf_build_id(const char *pathname, char *sbuild_id);
> +int sysfs__snprintf_build_id(const char *root_dir, char *sbuild_id, size_t sbuild_id_size);
> +int filename__snprintf_build_id(const char *pathname, char *sbuild_id, size_t sbuild_id_size);
>  char *build_id_cache__kallsyms_path(const char *sbuild_id, char *bf,
>  				    size_t size);
>  
> diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c
> index 8f0eb56c6fc6..96e6a5d6eacc 100644
> --- a/tools/perf/util/disasm.c
> +++ b/tools/perf/util/disasm.c
> @@ -1218,7 +1218,7 @@ int symbol__strerror_disassemble(struct map_symbol *ms, int errnum, char *buf, s
>  		char *build_id_msg = NULL;
>  
>  		if (dso__has_build_id(dso)) {
> -			build_id__sprintf(dso__bid(dso), bf + 15);
> +			build_id__snprintf(dso__bid(dso), bf + 15, sizeof(bf) - 15);
>  			build_id_msg = bf;
>  		}
>  		scnprintf(buf, buflen,
> diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c
> index 057fcf4225ac..97664610c37e 100644
> --- a/tools/perf/util/dso.c
> +++ b/tools/perf/util/dso.c
> @@ -217,7 +217,7 @@ int dso__read_binary_type_filename(const struct dso *dso,
>  			break;
>  		}
>  
> -		build_id__sprintf(dso__bid_const(dso), build_id_hex);
> +		build_id__snprintf(dso__bid_const(dso), build_id_hex, sizeof(build_id_hex));
>  		len = __symbol__join_symfs(filename, size, "/usr/lib/debug/.build-id/");
>  		snprintf(filename + len, size - len, "%.2s/%s.debug",
>  			 build_id_hex, build_id_hex + 2);
> @@ -1704,7 +1704,7 @@ static size_t dso__fprintf_buildid(struct dso *dso, FILE *fp)
>  {
>  	char sbuild_id[SBUILD_ID_SIZE];
>  
> -	build_id__sprintf(dso__bid(dso), sbuild_id);
> +	build_id__snprintf(dso__bid(dso), sbuild_id, sizeof(sbuild_id));
>  	return fprintf(fp, "%s", sbuild_id);
>  }
>  
> diff --git a/tools/perf/util/dsos.c b/tools/perf/util/dsos.c
> index 4d213017d202..47538273915d 100644
> --- a/tools/perf/util/dsos.c
> +++ b/tools/perf/util/dsos.c
> @@ -373,7 +373,7 @@ static int dsos__fprintf_buildid_cb(struct dso *dso, void *data)
>  
>  	if (args->skip && args->skip(dso, args->parm))
>  		return 0;
> -	build_id__sprintf(dso__bid(dso), sbuild_id);
> +	build_id__snprintf(dso__bid(dso), sbuild_id, sizeof(sbuild_id));
>  	args->ret += fprintf(args->fp, "%-40s %s\n", sbuild_id, dso__long_name(dso));
>  	return 0;
>  }
> diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
> index 14b0d3689137..fcf44149feb2 100644
> --- a/tools/perf/util/event.c
> +++ b/tools/perf/util/event.c
> @@ -334,7 +334,7 @@ size_t perf_event__fprintf_mmap2(union perf_event *event, FILE *fp)
>  
>  		build_id__init(&bid, event->mmap2.build_id,
>  			       event->mmap2.build_id_size);
> -		build_id__sprintf(&bid, sbuild_id);
> +		build_id__snprintf(&bid, sbuild_id, sizeof(sbuild_id));
>  
>  		return fprintf(fp, " %d/%d: [%#" PRI_lx64 "(%#" PRI_lx64 ") @ %#" PRI_lx64
>  				   " <%s>]: %c%c%c%c %s\n",
> diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> index 2dea35237e81..44941b3adddd 100644
> --- a/tools/perf/util/header.c
> +++ b/tools/perf/util/header.c
> @@ -2291,7 +2291,7 @@ static int __event_process_build_id(struct perf_record_header_build_id *bev,
>  			free(m.name);
>  		}
>  
> -		build_id__sprintf(dso__bid(dso), sbuild_id);
> +		build_id__snprintf(dso__bid(dso), sbuild_id, sizeof(sbuild_id));
>  		pr_debug("build id event received for %s: %s [%zu]\n",
>  			 dso__long_name(dso), sbuild_id, size);
>  		dso__put(dso);
> diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
> index d729438b7d65..0f6b185f9589 100644
> --- a/tools/perf/util/map.c
> +++ b/tools/perf/util/map.c
> @@ -354,7 +354,7 @@ int map__load(struct map *map)
>  		if (dso__has_build_id(dso)) {
>  			char sbuild_id[SBUILD_ID_SIZE];
>  
> -			build_id__sprintf(dso__bid(dso), sbuild_id);
> +			build_id__snprintf(dso__bid(dso), sbuild_id, sizeof(sbuild_id));
>  			pr_debug("%s with build id %s not found", name, sbuild_id);
>  		} else
>  			pr_debug("Failed to open %s", name);
> diff --git a/tools/perf/util/probe-file.c b/tools/perf/util/probe-file.c
> index ec8ac242fedb..5069fb61f48c 100644
> --- a/tools/perf/util/probe-file.c
> +++ b/tools/perf/util/probe-file.c
> @@ -448,10 +448,10 @@ static int probe_cache__open(struct probe_cache *pcache, const char *target,
>  	if (!target || !strcmp(target, DSO__NAME_KALLSYMS)) {
>  		target = DSO__NAME_KALLSYMS;
>  		is_kallsyms = true;
> -		ret = sysfs__sprintf_build_id("/", sbuildid);
> +		ret = sysfs__snprintf_build_id("/", sbuildid, sizeof(sbuildid));
>  	} else {
>  		nsinfo__mountns_enter(nsi, &nsc);
> -		ret = filename__sprintf_build_id(target, sbuildid);
> +		ret = filename__snprintf_build_id(target, sbuildid, sizeof(sbuildid));
>  		nsinfo__mountns_exit(&nsc);
>  	}
>  
> diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c
> index 00f2c6c5114d..6655c0bbe0d8 100644
> --- a/tools/perf/util/scripting-engines/trace-event-python.c
> +++ b/tools/perf/util/scripting-engines/trace-event-python.c
> @@ -780,14 +780,13 @@ static void set_sym_in_dict(PyObject *dict, struct addr_location *al,
>  			    const char *sym_field, const char *symoff_field,
>  			    const char *map_pgoff)
>  {
> -	char sbuild_id[SBUILD_ID_SIZE];
> -
>  	if (al->map) {
> +		char sbuild_id[SBUILD_ID_SIZE];
>  		struct dso *dso = map__dso(al->map);
>  
>  		pydict_set_item_string_decref(dict, dso_field,
>  					      _PyUnicode_FromString(dso__name(dso)));
> -		build_id__sprintf(dso__bid(dso), sbuild_id);
> +		build_id__snprintf(dso__bid(dso), sbuild_id, sizeof(sbuild_id));
>  		pydict_set_item_string_decref(dict, dso_bid_field,
>  			_PyUnicode_FromString(sbuild_id));
>  		pydict_set_item_string_decref(dict, dso_map_start,
> @@ -1238,7 +1237,7 @@ static int python_export_dso(struct db_export *dbe, struct dso *dso,
>  	char sbuild_id[SBUILD_ID_SIZE];
>  	PyObject *t;
>  
> -	build_id__sprintf(dso__bid(dso), sbuild_id);
> +	build_id__snprintf(dso__bid(dso), sbuild_id, sizeof(sbuild_id));
>  
>  	t = tuple_new(5);
>  
> diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
> index 8b30c6f16a9e..ea86a6253f04 100644
> --- a/tools/perf/util/symbol.c
> +++ b/tools/perf/util/symbol.c
> @@ -2151,7 +2151,7 @@ static char *dso__find_kallsyms(struct dso *dso, struct map *map)
>  			goto proc_kallsyms;
>  	}
>  
> -	build_id__sprintf(dso__bid(dso), sbuild_id);
> +	build_id__snprintf(dso__bid(dso), sbuild_id, sizeof(sbuild_id));
>  
>  	/* Find kallsyms in build-id cache with kcore */
>  	scnprintf(path, sizeof(path), "%s/%s/%s",
> -- 
> 2.50.0.727.gbf7dc18ff4-goog
> 


  reply	other threads:[~2025-07-01 19:14 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-28  4:49 [PATCH v5 00/23] perf: Make code more generic with modern defaults Ian Rogers
2025-06-28  4:49 ` [PATCH v5 01/23] perf build-id: Reduce size of "size" variable Ian Rogers
2025-06-28  4:49 ` [PATCH v5 02/23] perf build-id: Truncate to avoid overflowing the build_id data Ian Rogers
2025-06-28  4:49 ` [PATCH v5 03/23] perf build-id: Change sprintf functions to snprintf Ian Rogers
2025-07-01 16:51   ` Namhyung Kim [this message]
2025-06-28  4:49 ` [PATCH v5 04/23] perf build-id: Mark DSO in sample callchains Ian Rogers
2025-06-28  4:49 ` [PATCH v5 05/23] perf build-id: Ensure struct build_id is empty before use Ian Rogers
2025-06-28  4:50 ` [PATCH v5 06/23] perf dso: Move build_id to dso_id Ian Rogers
2025-06-28  4:50 ` [PATCH v5 07/23] perf jitdump: Directly mark the jitdump DSO Ian Rogers
2025-06-28  4:50 ` [PATCH v5 08/23] perf record: Make --buildid-mmap the default Ian Rogers
2025-07-01  5:43   ` Namhyung Kim
2025-06-28  4:50 ` [PATCH v5 09/23] perf session: Add accessor for session->header.env Ian Rogers
2025-06-28  4:50 ` [PATCH v5 10/23] perf session: Add an env pointer for the current perf_env Ian Rogers
2025-07-01  6:27   ` Namhyung Kim
2025-07-01 17:00     ` Ian Rogers
2025-06-28  4:50 ` [PATCH v5 11/23] perf evlist: Change env variable to session Ian Rogers
2025-07-01  6:31   ` Namhyung Kim
2025-06-28  4:50 ` [PATCH v5 12/23] perf header: Clean up use of perf_env Ian Rogers
2025-06-28  4:50 ` [PATCH v5 13/23] perf test: Avoid use perf_env Ian Rogers
2025-06-28  4:50 ` [PATCH v5 14/23] perf session: Add host_env argument to perf_session__new Ian Rogers
2025-06-28  4:50 ` [PATCH v5 15/23] perf top: Make perf_env locally scoped Ian Rogers
2025-06-28  4:50 ` [PATCH v5 16/23] perf bench synthesize: Avoid use of global perf_env Ian Rogers
2025-07-01  6:05   ` Namhyung Kim
2025-06-28  4:50 ` [PATCH v5 17/23] perf machine: Explicitly pass in host perf_env Ian Rogers
2025-06-28  4:50 ` [PATCH v5 18/23] perf auxtrace: Pass perf_env from session through to mmap read Ian Rogers
2025-06-28  4:50 ` [PATCH v5 19/23] perf trace: Avoid global perf_env with evsel__env Ian Rogers
2025-06-28  4:50 ` [PATCH v5 20/23] perf env: Remove global perf_env Ian Rogers
2025-06-28  4:50 ` [PATCH v5 21/23] perf sample: Remove arch notion of sample parsing Ian Rogers
2025-06-28  4:50 ` [PATCH v5 22/23] perf test: Move PERF_SAMPLE_WEIGHT_STRUCT parsing to common test Ian Rogers
2025-06-28  4:50 ` [PATCH v5 23/23] perf sort: Use perf_env to set arch sort keys and header Ian Rogers
2025-07-01  6:23   ` Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aGQSEIJNbzjbLrB2@google.com \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=atrajeev@linux.ibm.com \
    --cc=ben.gainey@arm.com \
    --cc=chaitanyas.prakash@arm.com \
    --cc=charlie@rivosinc.com \
    --cc=colin.i.king@gmail.com \
    --cc=ctshao@google.com \
    --cc=dvyukov@google.com \
    --cc=fzczx123@gmail.com \
    --cc=graham.woodward@arm.com \
    --cc=howardchu95@gmail.com \
    --cc=ilkka@os.amperecomputing.com \
    --cc=irogers@google.com \
    --cc=james.clark@linaro.org \
    --cc=john.g.garry@oracle.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=kjain@linux.ibm.com \
    --cc=krzysztof.m.lopatowski@gmail.com \
    --cc=leo.yan@linux.dev \
    --cc=lihuafei1@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=linux@treblig.org \
    --cc=m.liska@foxlink.cz \
    --cc=mark.rutland@arm.com \
    --cc=martin.liska@hey.com \
    --cc=matt@readmodwrite.com \
    --cc=mhiramat@kernel.org \
    --cc=mike.leach@linaro.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=quic_zhonhan@quicinc.com \
    --cc=ravi.bangoria@amd.com \
    --cc=scclevenger@os.amperecomputing.com \
    --cc=sesse@google.com \
    --cc=song@kernel.org \
    --cc=stephen.s.brennan@oracle.com \
    --cc=thomas.falcon@intel.com \
    --cc=vmolnaro@redhat.com \
    --cc=weilin.wang@intel.com \
    --cc=will@kernel.org \
    --cc=yangyicong@hisilicon.com \
    --cc=yeoreum.yun@arm.com \
    --cc=yujie.liu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.