From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Namhyung Kim <namhyung@kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
James Clark <james.clark@linaro.org>,
Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Clark Williams <williams@redhat.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: Re: [PATCH v4 6/6] perf mem record: Use the IBS swfilt filter when available
Date: Fri, 25 Sep 2026 12:31:49 +0200 [thread overview]
Message-ID: <arZNlT3kb8Gg8kVo@x2> (raw)
In-Reply-To: <76ef085b-e8e3-41a5-b029-2cd0489aa430@amd.com>
On Fri, Sep 25, 2026 at 09:32:42AM +0530, Ravi Bangoria wrote:
> Hi Arnaldo,
>
> > IBS events with exclude_{user,kernel} bits, as used for per-thread
> > recording when kernel samples are not allowed, are rejected on hardware
> > without the privilege filter, so per-thread 'perf mem record' fails on
> > AMD:
> >
> > $ perf mem record -o /dev/null -- true
> > Failure to open event 'ibs_op/ldlat=0/u' on PMU 'ibs_op' which will be removed.
> >
> > Kernel v6.14 added swfilt, a software privilege filter exposed as the
> > 'swfilt' format term, making those events usable per-thread. Give the
> > ibs_op memory events extra tables with the term, selected in
> > perf_pmu__arch_init() when the PMU exposes it, keeping the names that
> > need system wide mode otherwise; the knowledge that IBS needs this
> > stays in the arch code.
> >
> > Suggested-by: Namhyung Kim <namhyung@kernel.org>
> > Suggested-by: Ravi Bangoria <ravi.bangoria@amd.com>
> > Assisted-by: LLM
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> Reviewed-by: Ravi Bangoria <ravi.bangoria@amd.com>
>
> > + * ... Keep it even when
> > + * the event has no exclude bits yet, 'perf record' adds them on the
> > + * first open failure and retries with the same name.
>
> Currently, 'perf record' fails rather than silently retrying with
> /swfilt=1/. The reason to not transparently add /swfilt=1/ is to
> make the user aware that software filtering is being used, and it
> is not overhead free.
Made it more concise:
+/*
+ * IBS events with exclude_{user,kernel} bits are rejected on hardware
+ * without the privilege filter unless swfilt is used: the extra tables
+ * carry the term, selected when the PMU exposes it.
+ */
struct perf_mem_event perf_mem_events_amd[PERF_MEM_EVENTS__MAX] = {
E(NULL, NULL, NULL, false, 0),
E(NULL, NULL, NULL, false, 0),
E("mem-ldst", "%s//", NULL, false, 0),
};
+struct perf_mem_event perf_mem_events_amd_swfilt[PERF_MEM_EVENTS__MAX] = {
+ E(NULL, NULL, NULL, false, 0),
+ E(NULL, NULL, NULL, false, 0),
+ E("mem-ldst", "%s/swfilt=1/", NULL, false, 0),
+};
+
struct perf_mem_event perf_mem_events_amd_ldlat[PERF_MEM_EVENTS__MAX] = {
E(NULL, NULL, NULL, false, 0),
E(NULL, NULL, NULL, false, 0),
E("mem-ldst", "%s/ldlat=%u/", NULL, true, 0),
};
+
+struct perf_mem_event perf_mem_events_amd_ldlat_swfilt[PERF_MEM_EVENTS__MAX] = {
+ E(NULL, NULL, NULL, false, 0),
+ E(NULL, NULL, NULL, false, 0),
+ E("mem-ldst", "%s/ldlat=%u,swfilt=1/", NULL, true, 0),
+};o
- Arnaldo
next prev parent reply other threads:[~2026-09-25 10:31 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 21:28 [PATCH v4 0/6] perf annotate-data: Fix hangs on broken debug info, AMD mem record Arnaldo Carvalho de Melo
2026-09-24 21:28 ` [PATCH v4 1/6] perf dwarf-aux: Bound the type chases for broken debug info Arnaldo Carvalho de Melo
2026-09-24 21:35 ` sashiko-bot
2026-09-24 21:28 ` [PATCH v4 2/6] perf dwarf-aux: Add die_same_file() and die_get_type_die() Arnaldo Carvalho de Melo
2026-09-24 21:34 ` sashiko-bot
2026-09-24 21:28 ` [PATCH v4 3/6] perf annotate-data: Resolve type DIEs in the debug file they came from Arnaldo Carvalho de Melo
2026-09-24 21:34 ` sashiko-bot
2026-09-24 21:28 ` [PATCH v4 4/6] perf annotate-data: Bound the member nesting recursion Arnaldo Carvalho de Melo
2026-09-24 21:35 ` sashiko-bot
2026-09-24 21:28 ` [PATCH v4 5/6] perf mem record: Request PERF_SAMPLE_CPU by default Arnaldo Carvalho de Melo
2026-09-24 21:37 ` sashiko-bot
2026-09-24 21:28 ` [PATCH v4 6/6] perf mem record: Use the IBS swfilt filter when available Arnaldo Carvalho de Melo
2026-09-24 21:35 ` sashiko-bot
2026-09-25 4:02 ` Ravi Bangoria
2026-09-25 10:31 ` Arnaldo Carvalho de Melo [this message]
2026-09-25 11:21 ` Ravi Bangoria
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=arZNlT3kb8Gg8kVo@x2 \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=ravi.bangoria@amd.com \
--cc=tglx@linutronix.de \
--cc=williams@redhat.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.