From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>, Paul Mackerras <paulus@samba.org>,
Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH,RFC] perf: panic due to inclied cpu context task_ctx value
Date: Mon, 28 Mar 2011 18:27:43 +0200 [thread overview]
Message-ID: <1301329663.4859.32.camel@twins> (raw)
In-Reply-To: <20110328151511.GA3608@redhat.com>
On Mon, 2011-03-28 at 17:15 +0200, Oleg Nesterov wrote:
> On 03/28, Peter Zijlstra wrote:
> >
> > --- linux-2.6.orig/kernel/perf_event.c
> > +++ linux-2.6/kernel/perf_event.c
> > @@ -1767,7 +1767,6 @@ static void ctx_sched_out(struct perf_ev
> > struct perf_event *event;
> >
> > raw_spin_lock(&ctx->lock);
> > - perf_pmu_disable(ctx->pmu);
> > ctx->is_active = 0;
> > if (likely(!ctx->nr_events))
> > goto out;
> > @@ -1777,6 +1776,7 @@ static void ctx_sched_out(struct perf_ev
> > if (!ctx->nr_active)
> > goto out;
> >
> > + perf_pmu_disable(ctx->pmu);
> > if (event_type & EVENT_PINNED) {
> > list_for_each_entry(event, &ctx->pinned_groups, group_entry)
> > group_sched_out(event, cpuctx, ctx);
> > @@ -1786,8 +1786,8 @@ static void ctx_sched_out(struct perf_ev
> > list_for_each_entry(event, &ctx->flexible_groups, group_entry)
> > group_sched_out(event, cpuctx, ctx);
> > }
> > -out:
> > perf_pmu_enable(ctx->pmu);
> > +out:
> > raw_spin_unlock(&ctx->lock);
>
> Yes, thanks.
>
> Probably this doesn't matter from the perfomance pov, but imho this
> makes the code more understandable. This is important for occasional
> readers like me ;)
Could actually save quite a lot of cycles, pmu-disable/enable can be
very expensive on some hardware.
> Could you answer another question? It is not immediately clear why
> ctx_sched_in() does not check nr_active != 0 before doing
> ctx_XXX_sched_in(). I guess, the only reason is perf_rotate_context()
> and the similar logic in perf_event_context_sched_in(). If we are
> doing, say, cpu_ctx_sched_out(FLEXIBLE) + cpu_ctx_sched_in(FLEXIBLE)
> then ->nr_active can be zero after cpu_ctx_sched_out().
>
> Is my understanding correct? Or is there another reason?
nr_active counts the number of events that have been scheduled in, so
its perfectly fine to have either nr_active or !nr_active at that
point.
next prev parent reply other threads:[~2011-03-28 16:28 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-24 16:44 [PATCH,RFC] perf: panic due to inclied cpu context task_ctx value Jiri Olsa
2011-03-25 19:10 ` Oleg Nesterov
2011-03-26 15:37 ` Peter Zijlstra
2011-03-26 16:13 ` Oleg Nesterov
2011-03-26 16:38 ` Peter Zijlstra
2011-03-26 17:09 ` Oleg Nesterov
2011-03-26 17:35 ` Oleg Nesterov
2011-03-26 18:29 ` Peter Zijlstra
2011-03-26 18:49 ` Oleg Nesterov
2011-03-28 13:30 ` Oleg Nesterov
2011-03-28 14:57 ` Peter Zijlstra
2011-03-28 15:00 ` Peter Zijlstra
2011-03-28 15:15 ` Oleg Nesterov
2011-03-28 16:27 ` Peter Zijlstra [this message]
2011-03-28 15:39 ` Oleg Nesterov
2011-03-28 15:49 ` Peter Zijlstra
2011-03-28 16:56 ` Oleg Nesterov
2011-03-29 8:32 ` Peter Zijlstra
2011-03-29 10:49 ` Peter Zijlstra
2011-03-29 16:28 ` Oleg Nesterov
2011-03-29 19:01 ` Peter Zijlstra
2011-03-30 13:09 ` Jiri Olsa
2011-03-30 14:51 ` Peter Zijlstra
2011-03-30 16:37 ` Oleg Nesterov
2011-03-30 18:30 ` Paul E. McKenney
2011-03-30 19:53 ` Oleg Nesterov
2011-03-30 21:26 ` Peter Zijlstra
2011-03-30 21:35 ` Oleg Nesterov
2011-03-31 10:32 ` Jiri Olsa
2011-03-31 12:41 ` [tip:perf/urgent] perf: Fix task context scheduling tip-bot for Peter Zijlstra
2011-03-31 13:28 ` [PATCH,RFC] perf: panic due to inclied cpu context task_ctx value Oleg Nesterov
2011-03-31 13:51 ` Peter Zijlstra
2011-03-31 14:10 ` Oleg Nesterov
2011-04-04 16:20 ` Oleg Nesterov
2011-03-30 15:32 ` Oleg Nesterov
2011-03-30 15:40 ` Peter Zijlstra
2011-03-30 15:52 ` Oleg Nesterov
2011-03-30 15:57 ` Peter Zijlstra
2011-03-30 16:11 ` Peter Zijlstra
2011-03-30 17:13 ` Oleg Nesterov
2011-03-26 17:09 ` Peter Zijlstra
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=1301329663.4859.32.camel@twins \
--to=a.p.zijlstra@chello.nl \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--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.