Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2711926a authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo
Browse files

perf tools: Ensure single disable call per event in record comand



It's possible we issue the event disable ioctl multiple times until we
read the final portion of the mmap buffer.

Ensuring just single disable ioctl call for event, because there's no
need to do that more than once.

Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1352741644-16809-4-git-send-email-jolsa@redhat.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 774cb499
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -502,6 +502,7 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
	struct perf_evlist *evsel_list = rec->evlist;
	struct perf_evlist *evsel_list = rec->evlist;
	const char *output_name = rec->output_name;
	const char *output_name = rec->output_name;
	struct perf_session *session;
	struct perf_session *session;
	bool disabled = false;


	rec->progname = argv[0];
	rec->progname = argv[0];


@@ -735,8 +736,10 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
		 * die with the process and we wait for that. Thus no need to
		 * die with the process and we wait for that. Thus no need to
		 * disable events in this case.
		 * disable events in this case.
		 */
		 */
		if (done && !perf_target__none(&opts->target))
		if (done && !disabled && !perf_target__none(&opts->target)) {
			perf_evlist__disable(evsel_list);
			perf_evlist__disable(evsel_list);
			disabled = true;
		}
	}
	}


	if (quiet || signr == SIGUSR1)
	if (quiet || signr == SIGUSR1)