All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Peter Zijlstra <a.p.zijlstra@chello.nl>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, paulus@samba.org, hpa@zytor.com,
	mingo@redhat.com, a.p.zijlstra@chello.nl, tglx@linutronix.de,
	mingo@elte.hu
Subject: [tip:perf/core] perf: Optimize perf_event_task_ctx()
Date: Sat, 21 Nov 2009 13:41:42 GMT	[thread overview]
Message-ID: <tip-d6ff86cfb50a72df820e7e839836d55d245306fb@git.kernel.org> (raw)
In-Reply-To: <20091120212508.452227115@chello.nl>

Commit-ID:  d6ff86cfb50a72df820e7e839836d55d245306fb
Gitweb:     http://git.kernel.org/tip/d6ff86cfb50a72df820e7e839836d55d245306fb
Author:     Peter Zijlstra <a.p.zijlstra@chello.nl>
AuthorDate: Fri, 20 Nov 2009 22:19:46 +0100
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Sat, 21 Nov 2009 14:11:36 +0100

perf: Optimize perf_event_task_ctx()

Remove a rcu_read_{,un}lock() pair and a few conditionals.

We can remove the rcu_read_lock() by increasing the scope of one
in the calling function.

We can do away with the system_state check if the machine still
boots after this patch (seems to be the case).

We can do away with the list_empty() check because the bare
list_for_each_entry_rcu() reduces to that now that we've removed
everything else.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <20091120212508.452227115@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 kernel/perf_event.c |    7 +------
 1 files changed, 1 insertions(+), 6 deletions(-)

diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index cda17ac..2afb305 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -3267,15 +3267,10 @@ static void perf_event_task_ctx(struct perf_event_context *ctx,
 {
 	struct perf_event *event;
 
-	if (system_state != SYSTEM_RUNNING || list_empty(&ctx->event_list))
-		return;
-
-	rcu_read_lock();
 	list_for_each_entry_rcu(event, &ctx->event_list, event_entry) {
 		if (perf_event_task_match(event))
 			perf_event_task_output(event, task_event);
 	}
-	rcu_read_unlock();
 }
 
 static void perf_event_task_event(struct perf_task_event *task_event)
@@ -3283,11 +3278,11 @@ static void perf_event_task_event(struct perf_task_event *task_event)
 	struct perf_cpu_context *cpuctx;
 	struct perf_event_context *ctx = task_event->task_ctx;
 
+	rcu_read_lock();
 	cpuctx = &get_cpu_var(perf_cpu_context);
 	perf_event_task_ctx(&cpuctx->ctx, task_event);
 	put_cpu_var(perf_cpu_context);
 
-	rcu_read_lock();
 	if (!ctx)
 		ctx = rcu_dereference(task_event->task->perf_event_ctxp);
 	if (ctx)

  reply	other threads:[~2009-11-21 13:42 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-20 21:19 [PATCH 00/15] perf_event patches Peter Zijlstra
2009-11-20 21:19 ` [PATCH 01/15] perf: allow for custom overflow handlers Peter Zijlstra
2009-11-20 22:00   ` Frederic Weisbecker
2009-11-21 13:41   ` [tip:perf/core] perf: Allow " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 02/15] perf: optimize some swcounter attr.sample_period==1 paths Peter Zijlstra
2009-11-21 13:41   ` [tip:perf/core] perf: Optimize " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 03/15] perf: optimize perf_swevent_ctx_event() Peter Zijlstra
2009-11-21 13:41   ` [tip:perf/core] perf: Optimize perf_swevent_ctx_event() tip-bot for Peter Zijlstra
2009-11-23  5:50   ` [PATCH 03/15] perf: optimize perf_swevent_ctx_event() Paul Mackerras
2009-11-23  7:31     ` Peter Zijlstra
2009-11-23  8:38       ` Peter Zijlstra
2009-11-20 21:19 ` [PATCH 04/15] perf: optimize perf_event_task_ctx() Peter Zijlstra
2009-11-21 13:41   ` tip-bot for Peter Zijlstra [this message]
2009-11-20 21:19 ` [PATCH 05/15] perf: optimize perf_event_comm_ctx() Peter Zijlstra
2009-11-21 13:41   ` [tip:perf/core] perf: Optimize perf_event_comm_ctx() tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 06/15] perf: optimize perf_event_mmap_ctx() Peter Zijlstra
2009-11-21 13:42   ` [tip:perf/core] perf: Optimize perf_event_mmap_ctx() tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 07/15] perf: Fix PERF_FORMAT_GROUP scale info Peter Zijlstra
2009-11-21 13:42   ` [tip:perf/core] " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 08/15] perf: optimize perf_event_task_sched_out Peter Zijlstra
2009-11-21 13:42   ` [tip:perf/core] perf: Optimize perf_event_task_sched_out tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 09/15] perf: optimize __perf_event_read() Peter Zijlstra
2009-11-21 13:42   ` [tip:perf/core] perf: Optimize __perf_event_read() tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 10/15] perf: simplify __perf_event_sync_stat Peter Zijlstra
2009-11-21 13:43   ` [tip:perf/core] perf: Simplify __perf_event_sync_stat tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 11/15] perf: simplify __perf_event_read Peter Zijlstra
2009-11-21 13:43   ` [tip:perf/core] perf: Simplify __perf_event_read tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 12/15] perf: fix time locking Peter Zijlstra
2009-11-21 13:43   ` [tip:perf/core] perf: Fix " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 13/15] perf: fix event scaling for inherited counters Peter Zijlstra
2009-11-21 13:43   ` [tip:perf/core] perf: Fix " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 14/15] perf: fix locking for PERF_FORMAT_GROUP Peter Zijlstra
2009-11-21 13:44   ` [tip:perf/core] perf: Fix " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 15/15] perf_events: fix default watermark calculation Peter Zijlstra
2009-10-23 12:56   ` [PATCH] " Stephane Eranian
2009-11-18 14:35     ` Peter Zijlstra
2009-11-21 13:44     ` [tip:perf/core] perf_events: Fix " tip-bot for Stephane Eranian
2009-11-23  5:52 ` [PATCH 00/15] perf_event patches 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=tip-d6ff86cfb50a72df820e7e839836d55d245306fb@git.kernel.org \
    --to=a.p.zijlstra@chello.nl \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=paulus@samba.org \
    --cc=tglx@linutronix.de \
    /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.