[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150806121029.GQ19282@twins.programming.kicks-ass.net>
Date: Thu, 6 Aug 2015 14:10:29 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Sukadev Bhattiprolu <sukadev@...ux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Michael Ellerman <mpe@...erman.id.au>,
linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
linux-s390@...r.kernel.org, sparclinux@...r.kernel.org
Subject: Re: [PATCH 09/10] Define PERF_PMU_TXN_READ interface
On Sun, Jul 26, 2015 at 10:40:37PM -0700, Sukadev Bhattiprolu wrote:
> @@ -3743,7 +3762,13 @@ static u64 perf_event_aggregate(struct perf_event *event, u64 *enabled,
> lockdep_assert_held(&event->child_mutex);
>
> list_for_each_entry(child, &event->child_list, child_list) {
> +#if 0
> + /*
> + * TODO: Do we need this read() for group events on PMUs that
> + * don't implement PERF_PMU_TXN_READ transactions?
> + */
> (void)perf_event_read(child, false);
> +#endif
> total += perf_event_count(child);
> *enabled += child->total_time_enabled;
> *running += child->total_time_running;
Aw gawd, I've been an idiot!!
I just realized this is a _CHILD_ loop, not a _SIBLING_ loop !!
We need to flip the loops in perf_read_group(), find attached two
patches that go on top of 1,2,4.
After this you can add the perf_event_read() return value (just fold
patches 6,8) after which you can do patch 10 (which has a broken
Subject fwiw).
View attachment "peterz-perf_event_read-group.patch" of type "text/plain" (3606 bytes)
View attachment "peterz-perf-invert-perf_read_group.patch" of type "text/plain" (3746 bytes)
Powered by blists - more mailing lists