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 16/23] perf bench synthesize: Avoid use of global perf_env
Date: Mon, 30 Jun 2025 23:05:40 -0700	[thread overview]
Message-ID: <aGN6tPDP50RrNTnq@google.com> (raw)
In-Reply-To: <20250628045017.1361563-17-irogers@google.com>

On Fri, Jun 27, 2025 at 09:50:10PM -0700, Ian Rogers wrote:
> The benchmark doesn't use a data file and so the header perf_env isn't
> used. Stack allocate a host perf_env for use to avoid the use of the
> global perf_env.
> 
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  tools/perf/bench/synthesize.c | 30 +++++++++++++++++++-----------
>  1 file changed, 19 insertions(+), 11 deletions(-)
> 
> diff --git a/tools/perf/bench/synthesize.c b/tools/perf/bench/synthesize.c
> index 9b333276cbdb..79d99ba50284 100644
> --- a/tools/perf/bench/synthesize.c
> +++ b/tools/perf/bench/synthesize.c
> @@ -114,10 +114,13 @@ static int run_single_threaded(void)
>  		.pid = "self",
>  	};
>  	struct perf_thread_map *threads;
> +	struct perf_env host_env;
>  	int err;
>  
>  	perf_set_singlethreaded();
> -	session = perf_session__new(NULL, NULL);
> +	perf_env__init(&host_env);
> +	session = __perf_session__new(/*data=*/NULL, /*tool=*/NULL,
> +				      /*trace_event_repipe=*/false, &host_env);
>  	if (IS_ERR(session)) {
>  		pr_err("Session creation failed.\n");
>  		return PTR_ERR(session);

Missing perf_env__exit() ?


> @@ -144,6 +147,7 @@ static int run_single_threaded(void)
>  		perf_thread_map__put(threads);
>  
>  	perf_session__delete(session);
> +	perf_env__exit(&host_env);
>  	return err;
>  }
>  
> @@ -154,17 +158,21 @@ static int do_run_multi_threaded(struct target *target,
>  	u64 runtime_us;
>  	unsigned int i;
>  	double time_average, time_stddev, event_average, event_stddev;
> -	int err;
> +	int err = 0;
>  	struct stats time_stats, event_stats;
>  	struct perf_session *session;
> +	struct perf_env host_env;
>  
> +	perf_env__init(&host_env);
>  	init_stats(&time_stats);
>  	init_stats(&event_stats);
>  	for (i = 0; i < multi_iterations; i++) {
> -		session = perf_session__new(NULL, NULL);
> -		if (IS_ERR(session))
> -			return PTR_ERR(session);
> -
> +		session = __perf_session__new(/*data=*/NULL, /*tool=*/NULL,
> +					      /*trace_event_repipe=*/false, &host_env);
> +		if (IS_ERR(session)) {
> +			err = PTR_ERR(session);
> +			goto err_out;
> +		}
>  		atomic_set(&event_count, 0);
>  		gettimeofday(&start, NULL);
>  		err = __machine__synthesize_threads(&session->machines.host,
> @@ -173,10 +181,8 @@ static int do_run_multi_threaded(struct target *target,
>  						process_synthesized_event,
>  						true, false,
>  						nr_threads_synthesize);
> -		if (err) {
> -			perf_session__delete(session);
> -			return err;
> -		}
> +		if (err)
> +			goto err_out;

Missing perf_session__delete() ?


>  
>  		gettimeofday(&end, NULL);
>  		timersub(&end, &start, &diff);
> @@ -198,7 +204,9 @@ static int do_run_multi_threaded(struct target *target,
>  
>  	printf("    Average time per event %.3f usec\n",
>  		time_average / event_average);
> -	return 0;
> +err_out:
> +	perf_env__exit(&host_env);
> +	return err;
>  }
>  
>  static int run_multi_threaded(void)
> -- 
> 2.50.0.727.gbf7dc18ff4-goog
> 


  reply	other threads:[~2025-07-01  6:08 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
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 [this message]
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=aGN6tPDP50RrNTnq@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.