From: tip-bot for Sukadev Bhattiprolu <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: tglx@linutronix.de, hpa@zytor.com, sukadev@linux.vnet.ibm.com,
eranian@google.com, linux-kernel@vger.kernel.org,
acme@redhat.com, vincent.weaver@maine.edu, mpe@ellerman.id.au,
torvalds@linux-foundation.org, jolsa@redhat.com,
mingo@kernel.org, acme@kernel.org, peterz@infradead.org
Subject: [tip:perf/core] perf/core: Split perf_event_read() and perf_event_count()
Date: Sun, 13 Sep 2015 04:11:14 -0700 [thread overview]
Message-ID: <tip-01add3eaf1b25e497b14ca210f3bfe5f5dd2b112@git.kernel.org> (raw)
In-Reply-To: <1441336073-22750-4-git-send-email-sukadev@linux.vnet.ibm.com>
Commit-ID: 01add3eaf1b25e497b14ca210f3bfe5f5dd2b112
Gitweb: http://git.kernel.org/tip/01add3eaf1b25e497b14ca210f3bfe5f5dd2b112
Author: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
AuthorDate: Thu, 3 Sep 2015 20:07:46 -0700
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Sun, 13 Sep 2015 11:27:25 +0200
perf/core: Split perf_event_read() and perf_event_count()
perf_event_read() does two things:
- call the PMU to read/update the counter value, and
- compute the total count of the event and its children
Not all callers need both. perf_event_reset() for instance needs the
first piece but doesn't need the second. Similarly, when we implement
the ability to read a group of events using the transaction interface,
we would need the two pieces done independently.
Break up perf_event_read() and have it just read/update the counter
and have the callers compute the total count if necessary.
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Link: http://lkml.kernel.org/r/1441336073-22750-4-git-send-email-sukadev@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
kernel/events/core.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/kernel/events/core.c b/kernel/events/core.c
index c80cee8..260bf8c 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -3275,7 +3275,7 @@ u64 perf_event_read_local(struct perf_event *event)
return val;
}
-static u64 perf_event_read(struct perf_event *event)
+static void perf_event_read(struct perf_event *event)
{
/*
* If event is enabled and currently active on a CPU, update the
@@ -3301,8 +3301,6 @@ static u64 perf_event_read(struct perf_event *event)
update_event_times(event);
raw_spin_unlock_irqrestore(&ctx->lock, flags);
}
-
- return perf_event_count(event);
}
/*
@@ -3818,14 +3816,18 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
*running = 0;
mutex_lock(&event->child_mutex);
- total += perf_event_read(event);
+
+ perf_event_read(event);
+ total += perf_event_count(event);
+
*enabled += event->total_time_enabled +
atomic64_read(&event->child_total_time_enabled);
*running += event->total_time_running +
atomic64_read(&event->child_total_time_running);
list_for_each_entry(child, &event->child_list, child_list) {
- total += perf_event_read(child);
+ perf_event_read(child);
+ total += perf_event_count(child);
*enabled += child->total_time_enabled;
*running += child->total_time_running;
}
@@ -3985,7 +3987,7 @@ static unsigned int perf_poll(struct file *file, poll_table *wait)
static void _perf_event_reset(struct perf_event *event)
{
- (void)perf_event_read(event);
+ perf_event_read(event);
local64_set(&event->count, 0);
perf_event_update_userpage(event);
}
next prev parent reply other threads:[~2015-09-13 11:11 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-04 3:07 [PATCH v6 0/10] perf: Implement group-read of events using txn interface Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` [[PATCH v6 01/10] sparc/perf: Remove unnecessary assignment Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-13 11:10 ` [tip:perf/core] sparc, perf/sparc: " tip-bot for Sukadev Bhattiprolu
2015-09-04 3:07 ` [[PATCH v6 02/10] perf: Add a flags parameter to pmu txn interfaces Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 10:07 ` Michael Ellerman
2015-09-04 10:07 ` Michael Ellerman
2015-09-13 11:10 ` [tip:perf/core] perf/core: Add a 'flags' parameter to the PMU transactional interfaces tip-bot for Sukadev Bhattiprolu
2015-09-04 3:07 ` [[PATCH v6 03/10] perf: Split perf_event_read() and perf_event_count() Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-13 11:11 ` tip-bot for Sukadev Bhattiprolu [this message]
2015-09-04 3:07 ` [[PATCH v6 04/10] perf: Rename perf_event_read_{one, group}, perf_read_hw Sukadev Bhattiprolu
2015-09-04 3:07 ` [[PATCH v6 04/10] perf: Rename perf_event_read_{one,group}, perf_read_hw Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` [[PATCH v6 04/10] perf: Rename perf_event_read_{one, group}, perf_read_hw Sukadev Bhattiprolu
2015-09-13 11:11 ` [tip:perf/core] perf/core: Rename perf_event_read_{one,group}, perf_read_hw tip-bot for Peter Zijlstra (Intel)
2015-09-04 3:07 ` [[PATCH v6 05/10] perf: Add group reads to perf_event_read() Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` [[PATCH v6 06/10] perf: Invert perf_read_group() loops Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-13 11:12 ` [tip:perf/core] perf/core: " tip-bot for Peter Zijlstra
2015-09-04 3:07 ` [[PATCH v6 07/10] perf: Add return value for perf_event_read() Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-13 11:12 ` [tip:perf/core] perf/core: " tip-bot for Sukadev Bhattiprolu
2015-09-04 3:07 ` [[PATCH v6 08/10] Define PERF_PMU_TXN_READ interface Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-13 11:13 ` [tip:perf/core] perf/core: " tip-bot for Sukadev Bhattiprolu
2015-09-04 3:07 ` [[PATCH v6 09/10] powerpc/perf/hv-24x7: Use PMU_TXN_READ interface Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-08 9:07 ` Michael Ellerman
2015-09-08 9:07 ` Michael Ellerman
2015-09-08 11:29 ` Peter Zijlstra
2015-09-08 11:29 ` Peter Zijlstra
2015-09-09 2:15 ` Michael Ellerman
2015-09-09 2:15 ` Michael Ellerman
2015-09-09 21:12 ` Sukadev Bhattiprolu
2015-09-09 21:12 ` Sukadev Bhattiprolu
2015-09-10 0:43 ` Michael Ellerman
2015-09-10 0:43 ` Michael Ellerman
2015-09-13 11:13 ` [tip:perf/core] powerpc, perf/powerpc/hv-24x7: " tip-bot for Sukadev Bhattiprolu
2015-09-04 3:07 ` [[PATCH v6 10/10] perf: Drop PERF_EVENT_TXN Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-04 3:07 ` Sukadev Bhattiprolu
2015-09-13 11:13 ` [tip:perf/core] perf/core: " tip-bot for Sukadev Bhattiprolu
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-01add3eaf1b25e497b14ca210f3bfe5f5dd2b112@git.kernel.org \
--to=tipbot@zytor.com \
--cc=acme@kernel.org \
--cc=acme@redhat.com \
--cc=eranian@google.com \
--cc=hpa@zytor.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=peterz@infradead.org \
--cc=sukadev@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=vincent.weaver@maine.edu \
/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.