All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: acme@kernel.org, jolsa@kernel.org, linux-kernel@vger.kernel.org,
	Andi Kleen <ak@linux.intel.com>
Subject: Re: [PATCH v1 1/2] perf, tools: Move perf_evsel__reset_weak_group into evlist
Date: Tue, 2 Oct 2018 17:41:31 +0200	[thread overview]
Message-ID: <20181002154128.GC6357@krava> (raw)
In-Reply-To: <20181001195927.14211-1-andi@firstfloor.org>

On Mon, Oct 01, 2018 at 12:59:26PM -0700, Andi Kleen wrote:
> From: Andi Kleen <ak@linux.intel.com>
> 
> - Move the function from builtin-stat to evlist for reuse
> - Rename to evlist to match purpose better
> - Pass the evlist as first argument.
> - No functional changes
> 
> Signed-off-by: Andi Kleen <ak@linux.intel.com>

Acked-by: Jiri Olsa <jolsa@kernel.org>

thanks,
jirka

> ---
>  tools/perf/builtin-stat.c | 29 ++---------------------------
>  tools/perf/util/evlist.c  | 27 +++++++++++++++++++++++++++
>  tools/perf/util/evlist.h  |  3 +++
>  3 files changed, 32 insertions(+), 27 deletions(-)
> 
> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
> index 08a1e64078ca..e60f6991dbb8 100644
> --- a/tools/perf/builtin-stat.c
> +++ b/tools/perf/builtin-stat.c
> @@ -567,32 +567,6 @@ static bool perf_evsel__should_store_id(struct perf_evsel *counter)
>  	return STAT_RECORD || counter->attr.read_format & PERF_FORMAT_ID;
>  }
>  
> -static struct perf_evsel *perf_evsel__reset_weak_group(struct perf_evsel *evsel)
> -{
> -	struct perf_evsel *c2, *leader;
> -	bool is_open = true;
> -
> -	leader = evsel->leader;
> -	pr_debug("Weak group for %s/%d failed\n",
> -			leader->name, leader->nr_members);
> -
> -	/*
> -	 * for_each_group_member doesn't work here because it doesn't
> -	 * include the first entry.
> -	 */
> -	evlist__for_each_entry(evsel_list, c2) {
> -		if (c2 == evsel)
> -			is_open = false;
> -		if (c2->leader == leader) {
> -			if (is_open)
> -				perf_evsel__close(c2);
> -			c2->leader = c2;
> -			c2->nr_members = 0;
> -		}
> -	}
> -	return leader;
> -}
> -
>  static int __run_perf_stat(int argc, const char **argv, int run_idx)
>  {
>  	int interval = stat_config.interval;
> @@ -639,7 +613,8 @@ static int __run_perf_stat(int argc, const char **argv, int run_idx)
>  			if ((errno == EINVAL || errno == EBADF) &&
>  			    counter->leader != counter &&
>  			    counter->weak_group) {
> -				counter = perf_evsel__reset_weak_group(counter);
> +				counter = perf_evlist__reset_weak_group(evsel_list,
> +									counter);
>  				goto try_again;
>  			}
>  
> diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
> index e7a4b31a84fb..de90f9097e97 100644
> --- a/tools/perf/util/evlist.c
> +++ b/tools/perf/util/evlist.c
> @@ -1810,3 +1810,30 @@ void perf_evlist__force_leader(struct perf_evlist *evlist)
>  		leader->forced_leader = true;
>  	}
>  }
> +
> +struct perf_evsel *perf_evlist__reset_weak_group(struct perf_evlist *evsel_list,
> +						 struct perf_evsel *evsel)
> +{
> +	struct perf_evsel *c2, *leader;
> +	bool is_open = true;
> +
> +	leader = evsel->leader;
> +	pr_debug("Weak group for %s/%d failed\n",
> +			leader->name, leader->nr_members);
> +
> +	/*
> +	 * for_each_group_member doesn't work here because it doesn't
> +	 * include the first entry.
> +	 */
> +	evlist__for_each_entry(evsel_list, c2) {
> +		if (c2 == evsel)
> +			is_open = false;
> +		if (c2->leader == leader) {
> +			if (is_open)
> +				perf_evsel__close(c2);
> +			c2->leader = c2;
> +			c2->nr_members = 0;
> +		}
> +	}
> +	return leader;
> +}
> diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h
> index dc66436add98..9919eed6d15b 100644
> --- a/tools/perf/util/evlist.h
> +++ b/tools/perf/util/evlist.h
> @@ -312,4 +312,7 @@ bool perf_evlist__exclude_kernel(struct perf_evlist *evlist);
>  
>  void perf_evlist__force_leader(struct perf_evlist *evlist);
>  
> +struct perf_evsel *perf_evlist__reset_weak_group(struct perf_evlist *evlist,
> +						 struct perf_evsel *evsel);
> +
>  #endif /* __PERF_EVLIST_H */
> -- 
> 2.17.1
> 

  parent reply	other threads:[~2018-10-02 15:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-01 19:59 [PATCH v1 1/2] perf, tools: Move perf_evsel__reset_weak_group into evlist Andi Kleen
2018-10-01 19:59 ` [PATCH v1 2/2] perf record: Support weak groups Andi Kleen
2018-10-02 15:42   ` Jiri Olsa
2018-11-06 19:13   ` [tip:perf/urgent] " tip-bot for Andi Kleen
2018-10-02 15:41 ` Jiri Olsa [this message]
2018-11-06 19:12 ` [tip:perf/urgent] perf evlist: Move perf_evsel__reset_weak_group into evlist tip-bot for Andi Kleen

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=20181002154128.GC6357@krava \
    --to=jolsa@redhat.com \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=andi@firstfloor.org \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.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.