From: Namhyung Kim <namhyung@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
Kan Liang <kan.liang@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
linux-perf-users@vger.kernel.org,
Ravi Bangoria <ravi.bangoria@amd.com>,
Mark Rutland <mark.rutland@arm.com>,
James Clark <james.clark@arm.com>,
Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
Kajol Jain <kjain@linux.ibm.com>,
Thomas Richter <tmricht@linux.ibm.com>,
Atish Patra <atishp@atishpatra.org>,
Palmer Dabbelt <palmer@rivosinc.com>,
Mingwei Zhang <mizhang@google.com>
Subject: Re: [PATCH 8/8] perf tools: Check fallback error and order
Date: Wed, 4 Sep 2024 11:15:54 -0700 [thread overview]
Message-ID: <Ztij2o6O9jbAdMiJ@google.com> (raw)
In-Reply-To: <CAP-5=fWnAwVumJgypta=RJV4JBN7A82bn4aUuNJX4G3Xi0zfhg@mail.gmail.com>
On Wed, Sep 04, 2024 at 09:19:25AM -0700, Ian Rogers wrote:
> On Tue, Sep 3, 2024 at 11:41 PM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > The perf_event_open might fail due to various reasons, so blindly
> > reducing precise_ip level might not be the best way to deal with it.
> >
> > It seems the kernel return -EOPNOTSUPP when PMU doesn't support the
> > given precise level. Let's try again with the correct error code.
>
> We also have pmu's max_precise:
> https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/pmu.h?h=perf-tools-next#n91
> The reducing the precision approach was iirc taken for AMD who will
> forward some precise events to IBS, but the max_precise on the cpu PMU
> is 0. I think because of this, reducing the precision below
> evsel->pmu->max_precise shouldn't be necessary and another fallback
> may help better.
Internally IBS has max_precise of 2 and I think it should have that in
the sysfs.
But I found a problem with this code. Now cycles:P would stop at 2
because after that it won't return EOPNOTSUPP. Instead, it returns
EINVAL because of exclude_kernel and PERF_PMU_CAP_NO_EXCLUDE.
Maybe we need something like this.. :(
Thanks,
Namhyung
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 0133c9ad3ce07a24..6157dc68044eb389 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -2587,6 +2587,13 @@ static int evsel__open_cpu(struct evsel *evsel, struct perf_cpu_map *cpus,
if (err == -EINVAL && evsel__detect_missing_features(evsel))
goto fallback_missing_features;
+ /* HACK: AMD IBS doesn't accept exclude_*, forwarding it back to core PMU */
+ if (err == -EINVAL && evsel->precise_max && evsel->core.attr.precise_ip &&
+ evsel->core.attr.exclude_kernel) {
+ evsel->core.attr.precise_ip = 0;
+ goto fallback_missing_features;
+ }
+
out_close:
if (err)
threads->err_thread = thread;
next prev parent reply other threads:[~2024-09-04 18:15 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-04 6:41 [RFC/PATCHSET 0/8] perf tools: Do not set attr.exclude_guest by default (v2) Namhyung Kim
2024-09-04 6:41 ` [PATCH 1/8] perf tools: Don't set attr.exclude_guest by default Namhyung Kim
2024-09-04 13:07 ` Arnaldo Carvalho de Melo
2024-09-04 15:43 ` Namhyung Kim
2024-09-04 6:41 ` [PATCH 2/8] perf tools: Simplify evsel__add_modifier() Namhyung Kim
2024-09-04 6:41 ` [PATCH 3/8] perf stat: Add --exclude-guest option Namhyung Kim
2024-09-04 6:41 ` [PATCH 4/8] perf tools: Do not set exclude_guest for precise_ip Namhyung Kim
2024-09-04 6:41 ` [PATCH 5/8] perf tools: Detect missing kernel features properly Namhyung Kim
2024-09-04 6:41 ` [PATCH 6/8] perf tools: Separate exclude_hv fallback Namhyung Kim
2024-09-04 6:41 ` [PATCH 7/8] perf tools: Add fallback for exclude_guest Namhyung Kim
2024-09-04 13:28 ` James Clark
2024-09-04 13:29 ` James Clark
2024-09-04 13:36 ` James Clark
2024-09-04 15:52 ` Namhyung Kim
2024-09-04 6:41 ` [PATCH 8/8] perf tools: Check fallback error and order Namhyung Kim
2024-09-04 16:19 ` Ian Rogers
2024-09-04 18:15 ` Namhyung Kim [this message]
2024-09-04 16:36 ` [RFC/PATCHSET 0/8] perf tools: Do not set attr.exclude_guest by default (v2) Ian Rogers
2024-09-04 17:46 ` Namhyung Kim
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=Ztij2o6O9jbAdMiJ@google.com \
--to=namhyung@kernel.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=atishp@atishpatra.org \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=irogers@google.com \
--cc=james.clark@arm.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=kjain@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@kernel.org \
--cc=mizhang@google.com \
--cc=palmer@rivosinc.com \
--cc=peterz@infradead.org \
--cc=ravi.bangoria@amd.com \
--cc=tmricht@linux.ibm.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.