From: Peter Zijlstra <peterz@infradead.org>
To: Paul Mackerras <paulus@samba.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
linux-kernel@vger.kernel.org,
Alexey Kardashevskiy <aik@au1.ibm.com>,
Ingo Molnar <mingo@elte.hu>
Subject: Re: [PATCH] perf, powerpc: Fix power_pmu_event_init to not use event->ctx
Date: Tue, 19 Oct 2010 10:28:52 +0200 [thread overview]
Message-ID: <1287476932.29097.1617.camel@twins> (raw)
In-Reply-To: <20101019055535.GA10398@drongo>
On Tue, 2010-10-19 at 16:55 +1100, Paul Mackerras wrote:
> Commit c3f00c70 ("perf: Separate find_get_context() from event
> initialization") changed the generic perf_event code to call
> perf_event_alloc, which calls the arch-specific event_init code,
> before looking up the context for the new event. Unfortunately,
> power_pmu_event_init uses event->ctx->task to see whether the new
> event is a per-task event or a system-wide event, and thus crashes
> since event->ctx is NULL at the point where power_pmu_event_init gets
> called.
>
> (The reason it needs to know whether it is a per-task event is because
> there are some hardware events on Power systems which only count when
> the processor is not idle, and there are some fixed-function counters
> which count such events. For example, the "run cycles" event counts
> cycles when the processor is not idle. If the user asks to count
> cycles, we can use "run cycles" if this is a per-task event, since the
> processor is running when the task is running, by definition. We
> can't use "run cycles" if the user asks for "cycles" on a system-wide
> counter.)
>
> Fortunately the information we need is in the event->attach_state
> field, so we just use that instead.
Ah, sorry for the breakage.
> Signed-off-by: Paul Mackerras <paulus@samba.org>
> Reported-by: Alexey Kardashevskiy <aik@au1.ibm.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> ---
> arch/powerpc/kernel/perf_event.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/perf_event.c b/arch/powerpc/kernel/perf_event.c
> index 9cb4924..3129c85 100644
> --- a/arch/powerpc/kernel/perf_event.c
> +++ b/arch/powerpc/kernel/perf_event.c
> @@ -1092,7 +1092,7 @@ static int power_pmu_event_init(struct perf_event *event)
> * XXX we should check if the task is an idle task.
> */
> flags = 0;
> - if (event->ctx->task)
> + if (event->attach_state & PERF_ATTACH_TASK)
> flags |= PPMU_ONLY_COUNT_RUN;
>
> /*
next prev parent reply other threads:[~2010-10-19 8:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-19 5:55 [PATCH] perf, powerpc: Fix power_pmu_event_init to not use event->ctx Paul Mackerras
2010-10-19 8:28 ` Peter Zijlstra [this message]
2010-10-19 11:50 ` Peter Zijlstra
2010-10-19 21:56 ` Paul Mackerras
2010-10-19 10:48 ` [tip:perf/core] " tip-bot for Paul Mackerras
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=1287476932.29097.1617.camel@twins \
--to=peterz@infradead.org \
--cc=aik@au1.ibm.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=paulus@samba.org \
/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.