From: Namhyung Kim <namhyung@kernel.org>
To: Borislav Petkov <bp@alien8.de>
Cc: Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Arnaldo Carvalho de Melo <acme@infradead.org>,
lkml <linux-kernel@vger.kernel.org>,
Stephane Eranian <eranian@google.com>,
Namhyung Kim <namhyung.kim@lge.com>, Jiri Olsa <jolsa@redhat.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: BUG: using smp_processor_id() in preemptible [00000000] code: asm/8267
Date: Wed, 27 Mar 2013 15:02:10 +0900 [thread overview]
Message-ID: <87ip4dgz31.fsf@sejong.aot.lge.com> (raw)
In-Reply-To: <20130326183452.GC27518@pd.tnic> (Borislav Petkov's message of "Tue, 26 Mar 2013 19:34:52 +0100")
Hi Borislav,
On Tue, 26 Mar 2013 19:34:52 +0100, Borislav Petkov wrote:
> On Sun, Mar 24, 2013 at 04:59:24PM +0100, Borislav Petkov wrote:
>> On Sun, Mar 24, 2013 at 12:55:56PM +0100, Borislav Petkov wrote:
>> > Hi,
>> >
>> > so I was tracing a small .c program like so:
>> >
>> > $ ./perf record ~/test/asm
>> >
>> > and here's what got spewed in dmesg. Kernel is plain -rc4. Any pending
>> > fixes in tip I should try?
>> >
>> > [ 3700.194208] BUG: using smp_processor_id() in preemptible [00000000] code: asm/8333
>> > [ 3700.194226] caller is perf_event_task_ctx+0x55/0x140
>>
>> Ok, here's the call stack I was able to reconstruct:
>>
>> perf_event_exit_task()
>> |->perf_event_exit_task_context()
>> |-> perf_event_task()
>> |-> perf_event_task_event()
>> |-> perf_event_task_ctx()
>> |-> perf_event_task_match()
>> |-> event_filter_match()
>> |-> smp_processor_id() -> debug_smp_processor_id()
>
> Ok, jolsa just rootcaused it: It is caused by
> d610d98b5de6860feb21539726e9af7c9094151c calling perf_event_task_ctx()
> outside of the preempt-safe protection.
Oops, my bad. Forgot to enable CONFIG_DEBUG_PREEMPT when testing. :(
>
> There's a straightforward fix below, what to people think?
Looks okay to me. Thanks for fixing this!
Namhyung
>
> --
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 7b4a55d41efc..f3bb3384a106 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -4455,8 +4455,11 @@ static void perf_event_task_event(struct perf_task_event *task_event)
> next:
> put_cpu_ptr(pmu->pmu_cpu_context);
> }
> +
> + preempt_disable();
> if (task_event->task_ctx)
> perf_event_task_ctx(task_event->task_ctx, task_event);
> + preempt_enable();
>
> rcu_read_unlock();
> }
next prev parent reply other threads:[~2013-03-27 6:02 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-24 11:55 BUG: using smp_processor_id() in preemptible [00000000] code: asm/8267 Borislav Petkov
2013-03-24 15:59 ` Borislav Petkov
2013-03-26 18:34 ` Borislav Petkov
2013-03-27 6:02 ` Namhyung Kim [this message]
2013-03-27 9:49 ` Borislav Petkov
2013-03-27 10:42 ` Jiri Olsa
2013-03-27 14:09 ` Peter Zijlstra
2013-03-27 16:31 ` Borislav Petkov
2013-04-30 15:27 ` [RFCv2] " Jiri Olsa
2013-03-27 13:15 ` Joerg Roedel
2013-03-27 14:17 ` Peter Zijlstra
2013-03-27 14:37 ` Paul E. McKenney
2013-03-27 16:34 ` Joerg Roedel
2013-03-27 16:38 ` Borislav Petkov
2013-03-27 18:04 ` Paul E. McKenney
2013-03-27 19:07 ` Borislav Petkov
2013-03-27 19:20 ` Borislav Petkov
2013-03-27 19:22 ` Paul E. McKenney
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=87ip4dgz31.fsf@sejong.aot.lge.com \
--to=namhyung@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@infradead.org \
--cc=bp@alien8.de \
--cc=eranian@google.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung.kim@lge.com \
--cc=peterz@infradead.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.