Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1428514
| Path | csiph.com!eternal-september.org!feeder.eternal-september.org!aioe.org!gothmog.csi.it!bofh.it!news.nic.it!robomod |
|---|---|
| From | tip-bot for Arnaldo Carvalho de Melo <tipbot@zytor.com> |
| Newsgroups | linux.kernel |
| Subject | [tip:perf/core] perf evsel: Fix write_backwards fallback |
| Date | Wed, 22 Jun 2016 09:50:02 +0200 |
| Message-ID | <rML58-wN-29@gated-at.bofh.it> (permalink) |
| References | <rM4We-77a-7@gated-at.bofh.it> <rKNkJ-5aq-9@gated-at.bofh.it> |
| Reply-To | acme@kernel.org, acme@redhat.com, mhiramat@kernel.org, mingo@kernel.org, jolsa@kernel.org, namhyung@kernel.org, wangnan0@huawei.com, linux-kernel@vger.kernel.org, lizefan@huawei.com, hpa@zytor.com, hekuang@huawei.com, tglx@linutronix.de |
| Git-Commit-ID | 7da36e94e7fad768ca8640b61ed1f49b284e1dc5 |
| X-Mailer | tip-git-log-daemon |
| Robot-ID | <tip-bot.git.kernel.org> |
| Robot-Unsubscribe | Contact <mailto:hpa@kernel.org> to get blacklisted from these emails |
| MIME-Version | 1.0 |
| Content-Transfer-Encoding | 8bit |
| Content-Type | text/plain; charset=UTF-8 |
| Content-Disposition | inline |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 100 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | tglx@linutronix.de, hpa@zytor.com, hekuang@huawei.com, linux-kernel@vger.kernel.org, lizefan@huawei.com, wangnan0@huawei.com, namhyung@kernel.org, jolsa@kernel.org, mhiramat@kernel.org, mingo@kernel.org, acme@kernel.org, acme@redhat.com |
| X-Original-Date | Wed, 22 Jun 2016 00:43:45 -0700 |
| X-Original-Message-ID | <tip-7da36e94e7fad768ca8640b61ed1f49b284e1dc5@git.kernel.org> |
| X-Original-References | <1466419645-75551-2-git-send-email-wangnan0@huawei.com> <20160616214724.GI13337@kernel.org> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1428514 |
Show key headers only | View raw
Commit-ID: 7da36e94e7fad768ca8640b61ed1f49b284e1dc5
Gitweb: http://git.kernel.org/tip/7da36e94e7fad768ca8640b61ed1f49b284e1dc5
Author: Arnaldo Carvalho de Melo <acme@kernel.org>
AuthorDate: Mon, 20 Jun 2016 10:47:18 +0000
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 21 Jun 2016 13:18:35 -0300
perf evsel: Fix write_backwards fallback
Commit b90dc17a5d14 "perf evsel: Add overwrite attribute and check
write_backward" misunderstood the 'order' should be obeyed in
__perf_evsel__open.
But the way this was done for attr.write_backwards was buggy, as we need
to check features in the inverse order of their introduction to the
kernel, so that a newer tool checks first the newest perf_event_attr
fields, detecting that the older kernel doesn't have support for them.
Also, we can avoid calling sys_perf_event_open() if we have already
detected the missing of write_backward.
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Fixes: b90dc17a5d14 ("perf evsel: Add overwrite attribute and check write_backward")
Link: http://lkml.kernel.org/r/1466419645-75551-2-git-send-email-wangnan0@huawei.com
Link: http://lkml.kernel.org/r/20160616214724.GI13337@kernel.org
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/evsel.c | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 9b2e3e6..1d8f2bb 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1389,8 +1389,11 @@ fallback_missing_features:
if (perf_missing_features.lbr_flags)
evsel->attr.branch_sample_type &= ~(PERF_SAMPLE_BRANCH_NO_FLAGS |
PERF_SAMPLE_BRANCH_NO_CYCLES);
- if (perf_missing_features.write_backward)
+ if (perf_missing_features.write_backward) {
+ if (evsel->overwrite)
+ return -EINVAL;
evsel->attr.write_backward = false;
+ }
retry_sample_id:
if (perf_missing_features.sample_id_all)
evsel->attr.sample_id_all = 0;
@@ -1453,12 +1456,6 @@ retry_open:
err = -EINVAL;
goto out_close;
}
-
- if (evsel->overwrite &&
- perf_missing_features.write_backward) {
- err = -EINVAL;
- goto out_close;
- }
}
}
@@ -1496,7 +1493,10 @@ try_fallback:
* Must probe features in the order they were added to the
* perf_event_attr interface.
*/
- if (!perf_missing_features.clockid_wrong && evsel->attr.use_clockid) {
+ if (!perf_missing_features.write_backward && evsel->attr.write_backward) {
+ perf_missing_features.write_backward = true;
+ goto fallback_missing_features;
+ } else if (!perf_missing_features.clockid_wrong && evsel->attr.use_clockid) {
perf_missing_features.clockid_wrong = true;
goto fallback_missing_features;
} else if (!perf_missing_features.clockid && evsel->attr.use_clockid) {
@@ -1521,12 +1521,7 @@ try_fallback:
PERF_SAMPLE_BRANCH_NO_FLAGS))) {
perf_missing_features.lbr_flags = true;
goto fallback_missing_features;
- } else if (!perf_missing_features.write_backward &&
- evsel->attr.write_backward) {
- perf_missing_features.write_backward = true;
- goto fallback_missing_features;
}
-
out_close:
do {
while (--thread >= 0) {
@@ -2409,6 +2404,8 @@ int perf_evsel__open_strerror(struct perf_evsel *evsel, struct target *target,
"We found oprofile daemon running, please stop it and try again.");
break;
case EINVAL:
+ if (evsel->overwrite && perf_missing_features.write_backward)
+ return scnprintf(msg, size, "Reading from overwrite event is not supported by this kernel.");
if (perf_missing_features.clockid)
return scnprintf(msg, size, "clockid feature not supported.");
if (perf_missing_features.clockid_wrong)
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
[PATCH v7 7/8] perf tools: Check write_backward during evlist config Wang Nan <wangnan0@huawei.com> - 2016-06-15 04:30 +0200
Re: [PATCH v7 7/8] perf tools: Check write_backward during evlist config Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-16 23:50 +0200
Re: [PATCH v7 7/8] perf tools: Check write_backward during evlist config "Wangnan (F)" <wangnan0@huawei.com> - 2016-06-20 06:20 +0200
[tip:perf/core] perf evsel: Fix write_backwards fallback tip-bot for Arnaldo Carvalho de Melo <tipbot@zytor.com> - 2016-06-22 09:50 +0200
csiph-web