I believe this is one of the things Linus wanted to have on AMD hw. On Thu, Nov 24, 2022 at 12:03:03PM -0000, tip-bot2 for Ravi Bangoria wrote: > The following commit has been merged into the perf/core branch of tip: > > Commit-ID: 30093056f7b2f759ff180d3a86d29f68315e469b > Gitweb: https://git.kernel.org/tip/30093056f7b2f759ff180d3a86d29f68315e469b > Author: Ravi Bangoria <ravi.bangoria@xxxxxxx> > AuthorDate: Tue, 15 Nov 2022 15:09:04 +05:30 > Committer: Peter Zijlstra <peterz@xxxxxxxxxxxxx> > CommitterDate: Thu, 24 Nov 2022 11:09:19 +01:00 > > perf/amd/ibs: Make IBS a core pmu > > So far, only one pmu was allowed to be registered as core pmu and thus > IBS pmus were being registered as uncore. However, with the event context > rewrite, that limitation no longer exists and thus IBS pmus can also be > registered as core pmu. This makes IBS much more usable, for ex, user > will be able to do per-process precise monitoring on AMD: > > Before patch: > $ sudo perf record -e cycles:pp ls > Error: > Invalid event (cycles:pp) in per-thread mode, enable system wide with '-a' > > After patch: > $ sudo perf record -e cycles:pp ls > [ perf record: Woken up 1 times to write data ] > [ perf record: Captured and wrote 0.017 MB perf.data (33 samples) ] > > Signed-off-by: Ravi Bangoria <ravi.bangoria@xxxxxxx> > Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> > Acked-by: Ian Rogers <irogers@xxxxxxxxxx> > Link: https://lkml.kernel.org/r/20221115093904.1799-1-ravi.bangoria@xxxxxxx > --- > arch/x86/events/amd/ibs.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/events/amd/ibs.c b/arch/x86/events/amd/ibs.c > index 3271735..fbc2ce8 100644 > --- a/arch/x86/events/amd/ibs.c > +++ b/arch/x86/events/amd/ibs.c > @@ -631,7 +631,7 @@ static const struct attribute_group *op_attr_update[] = { > > static struct perf_ibs perf_ibs_fetch = { > .pmu = { > - .task_ctx_nr = perf_invalid_context, > + .task_ctx_nr = perf_hw_context, > > .event_init = perf_ibs_init, > .add = perf_ibs_add, > @@ -655,7 +655,7 @@ static struct perf_ibs perf_ibs_fetch = { > > static struct perf_ibs perf_ibs_op = { > .pmu = { > - .task_ctx_nr = perf_invalid_context, > + .task_ctx_nr = perf_hw_context, > > .event_init = perf_ibs_init, > .add = perf_ibs_add, -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette