From: Kim Phillips <kim.phillips@amd.com>
To: Stephane Eranian <eranian@google.com>, linux-kernel@vger.kernel.org
Cc: peterz@infradead.org, acme@redhat.com, jolsa@redhat.com,
songliubraving@fb.com, mpe@ellerman.id.au, maddy@linux.ibm.com
Subject: Re: [PATCH v3 11/13] perf tools: improve IBS error handling
Date: Wed, 1 Dec 2021 09:30:14 -0600 [thread overview]
Message-ID: <25f7b261-3f2a-942d-8d3f-d501d9dc9612@amd.com> (raw)
In-Reply-To: <20211201010217.886919-12-eranian@google.com>
Hi Stephane,
This v3 looks like it's the same as in the v1 of the series,
which got nacked by acme.
Please use the newer patches provided. Instructions to do
so haven't changed since then.
Thanks,
Kim
On 11/30/21 7:02 PM, Stephane Eranian wrote:
> From: Kim Phillips <kim.phillips@amd.com>
>
> This patch improves the error message returned on failed perf_event_open() on
> AMD when using IBS.
>
> Signed-off-by: Kim Phillips <kim.phillips@amd.com>
> ---
> tools/perf/util/evsel.c | 42 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index ac0127be0459..39e9063c0a80 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -2852,12 +2852,52 @@ static bool find_process(const char *name)
> return ret ? false : true;
> }
>
> +static bool is_amd;
> +
> +static char *fgrep(FILE *inf, const char *str)
> +{
> + char line[256];
> + int slen = strlen(str);
> +
> + while (!feof(inf)) {
> + if (!fgets(line, 256, inf))
> + break;
> + if (strncmp(line, str, slen))
> + continue;
> +
> + return strdup(line);
> + }
> +
> + return NULL;
> +}
> +
> +static void detect_amd(void)
> +{
> + FILE *inf = fopen("/proc/cpuinfo", "r");
> + char *res;
> +
> + if (!inf)
> + return;
> +
> + res = fgrep(inf, "vendor_id");
> +
> + if (res) {
> + char *s = strchr(res, ':');
> +
> + is_amd = s && !strcmp(s, ": AuthenticAMD\n");
> + free(res);
> + }
> + fclose(inf);
> +}
> +
> int evsel__open_strerror(struct evsel *evsel, struct target *target,
> int err, char *msg, size_t size)
> {
> char sbuf[STRERR_BUFSIZE];
> int printed = 0, enforced = 0;
>
> + detect_amd();
> +
> switch (err) {
> case EPERM:
> case EACCES:
> @@ -2950,6 +2990,8 @@ int evsel__open_strerror(struct evsel *evsel, struct target *target,
> return scnprintf(msg, size, "wrong clockid (%d).", clockid);
> if (perf_missing_features.aux_output)
> return scnprintf(msg, size, "The 'aux_output' feature is not supported, update the kernel.");
> + if (is_amd && (evsel->core.attr.precise_ip || !strncmp(evsel->pmu_name, "ibs", 3)) && (evsel->core.attr.exclude_kernel))
> + return scnprintf(msg, size, "AMD IBS can't exclude kernel events. Try running at a higher privilege level.");
> break;
> case ENODATA:
> return scnprintf(msg, size, "Cannot collect data source with the load latency event alone. "
>
next prev parent reply other threads:[~2021-12-01 15:30 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-01 1:02 [PATCH v3 00/13] perf/x86/amd: Add AMD Fam19h Branch Sampling support Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 01/13] perf/core: add perf_clear_branch_entry_bitfields() helper Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 02/13] x86/cpufeatures: add AMD Fam19h Branch Sampling feature Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 03/13] perf/x86/amd: add AMD Fam19h Branch Sampling support Stephane Eranian
2021-12-01 4:02 ` kernel test robot
2021-12-01 8:08 ` kernel test robot
2021-12-01 1:02 ` [PATCH v3 04/13] perf/x86/amd: add branch-brs helper event for Fam19h BRS Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 05/13] perf/x86/amd: enable branch sampling priv level filtering Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 06/13] perf/x86/amd: add AMD branch sampling period adjustment Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 07/13] perf/x86/amd: make Zen3 branch sampling opt-in Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 08/13] ACPI: add perf low power callback Stephane Eranian
2021-12-01 6:14 ` kernel test robot
2021-12-01 1:02 ` [PATCH v3 09/13] perf/x86/amd: add idle hooks for branch sampling Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 10/13] perf tools: add branch-brs as a new event Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 11/13] perf tools: improve IBS error handling Stephane Eranian
2021-12-01 15:30 ` Kim Phillips [this message]
2021-12-01 20:40 ` Stephane Eranian
2021-12-01 23:05 ` Kim Phillips
2021-12-01 1:02 ` [PATCH v3 12/13] perf tools: improve error handling of AMD Branch Sampling Stephane Eranian
2021-12-01 1:02 ` [PATCH v3 13/13] perf report: add addr_from/addr_to sort dimensions Stephane Eranian
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=25f7b261-3f2a-942d-8d3f-d501d9dc9612@amd.com \
--to=kim.phillips@amd.com \
--cc=acme@redhat.com \
--cc=eranian@google.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=peterz@infradead.org \
--cc=songliubraving@fb.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox