All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: James Clark <james.clark@arm.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, suzuki.poulose@arm.com,
	gengdongjiu@huawei.com, wxf.wang@hisilicon.com,
	liwei391@huawei.com, liuqi115@hisilicon.com,
	huawei.libin@huawei.com, nd@arm.com,
	linux-perf-users@vger.kernel.org, Will Deacon <will@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Tan Xiaojun <tanxiaojun@huawei.com>, Al Grant <al.grant@arm.com>,
	Namhyung Kim <namhyung@kernel.org>
Subject: Re: [PATCH v2 5/7] perf tools: add perf_evlist__terminate() for terminate
Date: Mon, 27 Jan 2020 13:31:08 +0100	[thread overview]
Message-ID: <20200127123108.GC1114818@krava> (raw)
In-Reply-To: <20200123160734.3775-6-james.clark@arm.com>

On Thu, Jan 23, 2020 at 04:07:32PM +0000, James Clark wrote:
> From: Wei Li <liwei391@huawei.com>
> 
> In __cmd_record(), when receiving SIGINT(ctrl + c), a done flag will
> be set and the event list will be disabled by perf_evlist__disable()
> once.
> 
> While in auxtrace_record.read_finish(), the related events will be
> enabled again, if they are continuous, the recording seems to be endless.
> 
> Mark the evlist's state as terminated, preparing for the following fix.
> 
> Signed-off-by: Wei Li <liwei391@huawei.com>
> Tested-by: Qi Liu <liuqi115@hisilicon.com>
> Signed-off-by: James Clark <james.clark@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Tan Xiaojun <tanxiaojun@huawei.com>
> Cc: Al Grant <al.grant@arm.com>
> Cc: Namhyung Kim <namhyung@kernel.org>
> ---
>  tools/perf/builtin-record.c |  1 +
>  tools/perf/util/evlist.c    | 14 ++++++++++++++
>  tools/perf/util/evlist.h    |  1 +
>  tools/perf/util/evsel.h     |  1 +
>  4 files changed, 17 insertions(+)
> 
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 4c301466101b..e7c917f9534d 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -1722,6 +1722,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
>  		if (done && !disabled && !target__none(&opts->target)) {
>  			trigger_off(&auxtrace_snapshot_trigger);
>  			evlist__disable(rec->evlist);
> +			evlist__terminate(rec->evlist);
>  			disabled = true;
>  		}
>  	}
> diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
> index b9c7e5271611..b04794cd8586 100644
> --- a/tools/perf/util/evlist.c
> +++ b/tools/perf/util/evlist.c
> @@ -377,6 +377,20 @@ bool evsel__cpu_iter_skip(struct evsel *ev, int cpu)
>  	return true;
>  }
>  
> +void evlist__terminate(struct evlist *evlist)
> +{
> +	struct evsel *pos;
> +
> +	evlist__for_each_entry(evlist, pos) {
> +		if (pos->disabled || !perf_evsel__is_group_leader(pos) || !pos->core.fd)
> +			continue;
> +		evsel__disable(pos);
> +		pos->terminated = true;
> +	}

how is this different from evlist__disable? other than it does not
follow the cpu affinity ;-) can't you just call evlist__disable and
check later on evlist->enabled instead of evlist->terminated?

jirka


WARNING: multiple messages have this Message-ID (diff)
From: Jiri Olsa <jolsa@redhat.com>
To: James Clark <james.clark@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>, Al Grant <al.grant@arm.com>,
	wxf.wang@hisilicon.com, Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will@kernel.org>,
	suzuki.poulose@arm.com, linux-kernel@vger.kernel.org,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	gengdongjiu@huawei.com, linux-perf-users@vger.kernel.org,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	liuqi115@hisilicon.com, Tan Xiaojun <tanxiaojun@huawei.com>,
	huawei.libin@huawei.com, Namhyung Kim <namhyung@kernel.org>,
	nd@arm.com, liwei391@huawei.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 5/7] perf tools: add perf_evlist__terminate() for terminate
Date: Mon, 27 Jan 2020 13:31:08 +0100	[thread overview]
Message-ID: <20200127123108.GC1114818@krava> (raw)
In-Reply-To: <20200123160734.3775-6-james.clark@arm.com>

On Thu, Jan 23, 2020 at 04:07:32PM +0000, James Clark wrote:
> From: Wei Li <liwei391@huawei.com>
> 
> In __cmd_record(), when receiving SIGINT(ctrl + c), a done flag will
> be set and the event list will be disabled by perf_evlist__disable()
> once.
> 
> While in auxtrace_record.read_finish(), the related events will be
> enabled again, if they are continuous, the recording seems to be endless.
> 
> Mark the evlist's state as terminated, preparing for the following fix.
> 
> Signed-off-by: Wei Li <liwei391@huawei.com>
> Tested-by: Qi Liu <liuqi115@hisilicon.com>
> Signed-off-by: James Clark <james.clark@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Tan Xiaojun <tanxiaojun@huawei.com>
> Cc: Al Grant <al.grant@arm.com>
> Cc: Namhyung Kim <namhyung@kernel.org>
> ---
>  tools/perf/builtin-record.c |  1 +
>  tools/perf/util/evlist.c    | 14 ++++++++++++++
>  tools/perf/util/evlist.h    |  1 +
>  tools/perf/util/evsel.h     |  1 +
>  4 files changed, 17 insertions(+)
> 
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 4c301466101b..e7c917f9534d 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -1722,6 +1722,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
>  		if (done && !disabled && !target__none(&opts->target)) {
>  			trigger_off(&auxtrace_snapshot_trigger);
>  			evlist__disable(rec->evlist);
> +			evlist__terminate(rec->evlist);
>  			disabled = true;
>  		}
>  	}
> diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
> index b9c7e5271611..b04794cd8586 100644
> --- a/tools/perf/util/evlist.c
> +++ b/tools/perf/util/evlist.c
> @@ -377,6 +377,20 @@ bool evsel__cpu_iter_skip(struct evsel *ev, int cpu)
>  	return true;
>  }
>  
> +void evlist__terminate(struct evlist *evlist)
> +{
> +	struct evsel *pos;
> +
> +	evlist__for_each_entry(evlist, pos) {
> +		if (pos->disabled || !perf_evsel__is_group_leader(pos) || !pos->core.fd)
> +			continue;
> +		evsel__disable(pos);
> +		pos->terminated = true;
> +	}

how is this different from evlist__disable? other than it does not
follow the cpu affinity ;-) can't you just call evlist__disable and
check later on evlist->enabled instead of evlist->terminated?

jirka


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-01-27 12:31 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-23 16:07 [PATCH v2 0/7] perf tools: Add support for some spe events and precise ip James Clark
2020-01-23 16:07 ` James Clark
2020-01-23 16:07 ` [PATCH v2 1/7] perf tools: Move arm-spe-pkt-decoder.h/c to the new dir James Clark
2020-01-23 16:07   ` James Clark
2020-01-23 16:07 ` [PATCH v2 2/7] perf tools: Add support for "report" for some spe events James Clark
2020-01-23 16:07   ` James Clark
2020-01-27 12:31   ` Jiri Olsa
2020-01-27 12:31     ` Jiri Olsa
2020-01-23 16:07 ` [PATCH v2 3/7] perf report: Add --spe options for arm-spe James Clark
2020-01-23 16:07   ` James Clark
2020-01-23 16:07 ` [PATCH v2 4/7] perf tools: Support "branch-misses:pp" on arm64 James Clark
2020-01-23 16:07   ` James Clark
2020-01-27 12:31   ` Jiri Olsa
2020-01-27 12:31     ` Jiri Olsa
2020-01-23 16:07 ` [PATCH v2 5/7] perf tools: add perf_evlist__terminate() for terminate James Clark
2020-01-23 16:07   ` James Clark
2020-01-27 12:31   ` Jiri Olsa [this message]
2020-01-27 12:31     ` Jiri Olsa
2020-02-07 15:21     ` [PATCH v3 0/4] perf tools: Add support for some spe events and precise ip James Clark
2020-02-07 15:21       ` James Clark
2020-02-07 15:21       ` [PATCH v3 1/4] perf tools: Move arm-spe-pkt-decoder.h/c to the new dir James Clark
2020-02-07 15:21         ` James Clark
2020-02-07 15:21       ` [PATCH v3 2/4] perf tools: Add support for "report" for some spe events James Clark
2020-02-07 15:21         ` James Clark
2020-02-07 15:21       ` [PATCH v3 3/4] perf report: Add SPE options to --itrace argument James Clark
2020-02-07 15:21         ` James Clark
2020-02-07 15:21       ` [PATCH v3 4/4] perf tools: Support "branch-misses:pp" on arm64 James Clark
2020-02-07 15:21         ` James Clark
2020-02-10 12:25         ` Jiri Olsa
2020-02-10 12:25           ` Jiri Olsa
2020-02-11 14:04           ` [PATCH v4 0/4] perf tools: Add support for some spe events and precise ip James Clark
2020-02-11 14:04             ` James Clark
2020-02-11 14:04             ` [PATCH v4 1/4] perf tools: Move arm-spe-pkt-decoder.h/c to the new dir James Clark
2020-02-11 14:04               ` James Clark
2020-02-11 14:04             ` [PATCH v4 2/4] perf tools: Add support for "report" for some spe events James Clark
2020-02-11 14:04               ` James Clark
2020-02-17 11:39               ` Adrian Hunter
2020-02-17 11:39                 ` Adrian Hunter
2020-02-11 14:04             ` [PATCH v4 3/4] perf report: Add SPE options to --itrace argument James Clark
2020-02-11 14:04               ` James Clark
2020-02-17 11:39               ` Adrian Hunter
2020-02-17 11:39                 ` Adrian Hunter
2020-02-25 11:57                 ` [PATCH v5 0/4] perf tools: Add support for some spe events and precise ip James Clark
2020-02-25 11:57                   ` James Clark
2020-02-25 11:57                   ` [PATCH v5 1/4] perf tools: Move arm-spe-pkt-decoder.h/c to the new dir James Clark
2020-02-25 11:57                     ` James Clark
2020-02-25 11:57                   ` [PATCH v5 2/4] perf tools: Add support for "report" for some spe events James Clark
2020-02-25 11:57                     ` James Clark
2020-02-29  6:51                     ` Leo Yan
2020-02-29  6:51                       ` Leo Yan
2020-02-25 11:57                   ` [PATCH v5 3/4] perf report: Add SPE options to --itrace argument James Clark
2020-02-25 11:57                     ` James Clark
2020-02-25 11:57                   ` [PATCH v5 4/4] perf tools: Support "branch-misses:pp" on arm64 James Clark
2020-02-25 11:57                     ` James Clark
2020-02-28 16:03                     ` Mark Rutland
2020-02-28 16:03                       ` Mark Rutland
2020-02-11 14:04             ` [PATCH v4 " James Clark
2020-02-11 14:04               ` James Clark
2020-02-17 11:42               ` Adrian Hunter
2020-02-17 11:42                 ` Adrian Hunter
2020-02-24 17:08                 ` James Clark
2020-02-24 17:08                   ` James Clark
2020-02-28 16:01                   ` Mark Rutland
2020-02-28 16:01                     ` Mark Rutland
2020-03-06 15:25                     ` [PATCH v6 0/3] perf tools: Add support for some spe events James Clark
2020-03-06 15:25                       ` James Clark
2020-03-06 15:25                       ` [PATCH v6 1/3] perf tools: Move arm-spe-pkt-decoder.h/c to the new dir James Clark
2020-03-06 15:25                         ` James Clark
2020-03-06 15:25                       ` [PATCH v6 2/3] perf tools: Add support for "report" for some spe events James Clark
2020-03-06 15:25                         ` James Clark
2020-03-06 15:25                       ` [PATCH v6 3/3] perf report: Add SPE options to --itrace argument James Clark
2020-03-06 15:25                         ` James Clark
2020-03-13 11:33                         ` Leo Yan
2020-03-13 11:33                           ` Leo Yan
2020-03-13 11:53                       ` [PATCH v6 0/3] perf tools: Add support for some spe events Mark Rutland
2020-03-13 11:53                         ` Mark Rutland
2020-02-12 12:24             ` [PATCH v4 0/4] perf tools: Add support for some spe events and precise ip Jiri Olsa
2020-02-12 12:24               ` Jiri Olsa
2020-02-12 13:10               ` Adrian Hunter
2020-02-12 13:10                 ` Adrian Hunter
2020-01-23 16:07 ` [PATCH v2 6/7] perf tools: arm-spe: fix record hang after being terminated James Clark
2020-01-23 16:07   ` James Clark
2020-01-23 16:07 ` [PATCH v2 7/7] perf tools: Unset precise_ip when using SPE James Clark
2020-01-23 16:07   ` James Clark

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=20200127123108.GC1114818@krava \
    --to=jolsa@redhat.com \
    --cc=acme@kernel.org \
    --cc=al.grant@arm.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=gengdongjiu@huawei.com \
    --cc=huawei.libin@huawei.com \
    --cc=james.clark@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=liuqi115@hisilicon.com \
    --cc=liwei391@huawei.com \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=nd@arm.com \
    --cc=peterz@infradead.org \
    --cc=suzuki.poulose@arm.com \
    --cc=tanxiaojun@huawei.com \
    --cc=will@kernel.org \
    --cc=wxf.wang@hisilicon.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.