All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Ahern <dsahern@gmail.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: linux-kernel@vger.kernel.org,
	Corey Ashford <cjashfor@linux.vnet.ibm.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Ingo Molnar <mingo@elte.hu>, Namhyung Kim <namhyung@kernel.org>,
	Paul Mackerras <paulus@samba.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Andi Kleen <ak@linux.intel.com>,
	Stephane Eranian <eranian@google.com>
Subject: Re: [PATCH 5/5] perf tools: Fix perf_session__delete removal for report command
Date: Tue, 25 Jun 2013 11:07:36 -0600	[thread overview]
Message-ID: <51C9CE58.5070004@gmail.com> (raw)
In-Reply-To: <1372161253-22081-6-git-send-email-jolsa@redhat.com>

On 6/25/13 5:54 AM, Jiri Olsa wrote:
> There's no point of having out_delete label with perf_session__delete
> call within __cmd_report function, because it's called at the
> end of the cmd_report function.

Is convenient to have a single return point for a function. Perhaps 
change the label to just out and remove the comment?

David

>
> The speed up due to commenting out the perf_session__delete
> at the end does not seem relevant anymore. Measured speedup
> for ~1GB data file with 222466 FORKS events is around 0.5%.
>
>    $ perf report -i perf.data.delete -P perf_session__delete -s parent
>
>    +  99.51%  [other]
>    +   0.49%  perf_session__delete
>
> Signed-off-by: Jiri Olsa <jolsa@redhat.com>
> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Ingo Molnar <mingo@elte.hu>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Andi Kleen <ak@linux.intel.com>
> Cc: David Ahern <dsahern@gmail.com>
> Cc: Stephane Eranian <eranian@google.com>
> ---
>   tools/perf/builtin-report.c | 23 +++++------------------
>   1 file changed, 5 insertions(+), 18 deletions(-)
>
> diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
> index 8c2c7ce..36de70d 100644
> --- a/tools/perf/builtin-report.c
> +++ b/tools/perf/builtin-report.c
> @@ -497,7 +497,7 @@ static int __cmd_report(struct perf_report *rep)
>   		ret = perf_session__cpu_bitmap(session, rep->cpu_list,
>   					       rep->cpu_bitmap);
>   		if (ret)
> -			goto out_delete;
> +			return ret;
>   	}
>
>   	if (use_browser <= 0)
> @@ -508,11 +508,11 @@ static int __cmd_report(struct perf_report *rep)
>
>   	ret = perf_report__setup_sample_type(rep);
>   	if (ret)
> -		goto out_delete;
> +		return ret;
>
>   	ret = perf_session__process_events(session, &rep->tool);
>   	if (ret)
> -		goto out_delete;
> +		return ret;
>
>   	kernel_map = session->machines.host.vmlinux_maps[MAP__FUNCTION];
>   	kernel_kmap = map__kmap(kernel_map);
> @@ -547,7 +547,7 @@ static int __cmd_report(struct perf_report *rep)
>
>   	if (dump_trace) {
>   		perf_session__fprintf_nr_events(session, stdout);
> -		goto out_delete;
> +		return 0;
>   	}
>
>   	nr_samples = 0;
> @@ -572,7 +572,7 @@ static int __cmd_report(struct perf_report *rep)
>
>   	if (nr_samples == 0) {
>   		ui__error("The %s file has no samples!\n", session->filename);
> -		goto out_delete;
> +		return 0;
>   	}
>
>   	list_for_each_entry(pos, &session->evlist->entries, node)
> @@ -598,19 +598,6 @@ static int __cmd_report(struct perf_report *rep)
>   	} else
>   		perf_evlist__tty_browse_hists(session->evlist, rep, help);
>
> -out_delete:
> -	/*
> -	 * Speed up the exit process, for large files this can
> -	 * take quite a while.
> -	 *
> -	 * XXX Enable this when using valgrind or if we ever
> -	 * librarize this command.
> -	 *
> -	 * Also experiment with obstacks to see how much speed
> -	 * up we'll get here.
> -	 *
> - 	 * perf_session__delete(session);
> - 	 */
>   	return ret;
>   }
>
>


  reply	other threads:[~2013-06-25 17:07 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-25 11:54 [PATCH 0/5] perf tools: Parent option related fixies for report Jiri Olsa
2013-06-25 11:54 ` [PATCH 1/5] perf tools: Remove callchain_cursor_reset call Jiri Olsa
2013-06-25 17:00   ` David Ahern
2013-06-25 11:54 ` [PATCH 2/5] perf tools: Fix -x/--exclude-other option for report command Jiri Olsa
2013-06-25 17:02   ` David Ahern
2013-06-25 11:54 ` [PATCH 3/5] perf tools: Do not elide parent symbol column Jiri Olsa
2013-06-25 11:54 ` [PATCH 4/5] perf tools: Introduce new -P/--parent-deep report option Jiri Olsa
2013-06-25 15:18   ` Andi Kleen
2013-06-25 15:34     ` Jiri Olsa
2013-06-26  2:53   ` Namhyung Kim
2013-06-25 11:54 ` [PATCH 5/5] perf tools: Fix perf_session__delete removal for report command Jiri Olsa
2013-06-25 17:07   ` David Ahern [this message]
2013-07-19  7:44   ` [tip:perf/core] perf report: Fix perf_session__delete removal tip-bot for Jiri Olsa

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=51C9CE58.5070004@gmail.com \
    --to=dsahern@gmail.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=cjashfor@linux.vnet.ibm.com \
    --cc=eranian@google.com \
    --cc=fweisbec@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=namhyung@kernel.org \
    --cc=paulus@samba.org \
    /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.