[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP-5=fXq-YNKogH4DYQuf7rz8TZhu8=QnEsA2pvzj6YS_DQO7g@mail.gmail.com>
Date: Tue, 15 Nov 2022 09:07:44 -0800
From: Ian Rogers <irogers@...gle.com>
To: Ravi Bangoria <ravi.bangoria@....com>
Cc: peterz@...radead.org, acme@...nel.org, mark.rutland@....com,
jolsa@...hat.com, namhyung@...nel.org, eranian@...gle.com,
kan.liang@...ux.intel.com, bp@...en8.de, x86@...nel.org,
linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org,
sandipan.das@....com, ananth.narayan@....com,
santosh.shukla@....com
Subject: Re: [PATCH] perf/amd/ibs: Make IBS a core pmu
On Tue, Nov 15, 2022 at 1:39 AM Ravi Bangoria <ravi.bangoria@....com> wrote:
>
> 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@....com>
Acked-by: Ian Rogers <irogers@...gle.com>
This is awesome!
Ian
> ---
> Note:
> This patch is dependent on the event context rewrite patch which is
> already present in a tip tree:
> https://git.kernel.org/tip/tip/c/bd27568117664
>
> 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 3271735f0070..fbc2ce86f4b8 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,
> --
> 2.37.3
>
Powered by blists - more mailing lists