From: Robert Richter <rric@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>, Ingo Molnar <mingo@kernel.org>,
Arnaldo Carvalho de Melo <acme@infradead.org>,
Jiri Olsa <jolsa@redhat.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 00/14] perf, persistent: Kernel updates for perf tool integration
Date: Tue, 25 Jun 2013 12:46:16 +0200 [thread overview]
Message-ID: <20130625104616.GE21579@rric.localhost> (raw)
In-Reply-To: <20130624100819.GQ28407@twins.programming.kicks-ass.net>
On 24.06.13 12:08:19, Peter Zijlstra wrote:
> > git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile.git persistent-v2
> >
>
> OK, so I gave up on reading the patches :/ and went and looked at the git
> tree. There's just too much needless churn in the patches.
Ok, we will rework the patches to have a final patch set hiding all
reworks. I was hoping we could work on a public branch since this
eases developing code with multiple people working on it. This also
shows how code matures. But this seems not to fly.
> + int perf_add_persistent_event(struct perf_event_attr *attr, unsigned nr_pages)
> + {
> + struct perf_event *event;
> + int i;
> +
> + for_each_possible_cpu(i) {
> + event = add_persistent_event_on_cpu(i, attr, nr_pages);
> + if (IS_ERR(event))
> + goto unwind;
> + }
> + return 0;
> +
> + unwind:
> + pr_err("%s: Error adding persistent event on cpu %d: %ld\n",
> + __func__, i, PTR_ERR(event));
> +
> + while (--i >= 0)
> + del_persistent_event(i, attr);
> +
> + return PTR_ERR(event);
> + }
>
> This assumes cpu_possible_mask doesn't have holes in; I'm fairly sure we cannot
> assume such.
Right, needs to be fixed.
> Furthermore; while the function is exposed and thus looks like a generic usable
> thing; however it looks to 'forget' making a sysfs entry, making it look like
> something incomplete.
>
> Only the ill named perf_add_persistent_event_by_id() function looks
> something that's usable outside of this.
Right, the name should be actually perf_add_persistent_tp() or so.
And, most of the function should be merged with
perf_add_persistent_event(). Maybe perf_add_persistent_event_by_id()
could be removed completly leaving perf_add_persistent_tp() as wrapper
for tracepoints.
> What's with MAX_EVENTS ?
It is the total number of sysfs entries that can currently be
registered dynamically. The problem with an unlimited event number is
that the sysfs attr list is a fixed array. We need to resize the array
which involves copying entries including locking etc. This was left
for later. ;)
Btw, another thing left for later is cpu hotplug code. I know this
needs to be implemented. But we want to see something running first.
Do you know what happens to system-wide events if a cpu is offline? It
looks like cpu_function_call() in perf_install_in_context() simply
ignores to install an event on an offline cpu. Not sure if it is later
enabled while bringing the cpu online. Quick looking at the code seems
to be not.
-Robert
next prev parent reply other threads:[~2013-06-25 10:46 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-11 16:42 [PATCH v2 00/14] perf, persistent: Kernel updates for perf tool integration Robert Richter
2013-06-11 16:42 ` [PATCH v2 01/14] perf, ring_buffer: Use same prefix Robert Richter
2013-06-11 16:42 ` [PATCH v2 02/14] perf: Add persistent events Robert Richter
2013-06-24 9:28 ` Peter Zijlstra
2013-06-24 19:24 ` Borislav Petkov
2013-06-25 8:46 ` Robert Richter
2013-06-11 16:42 ` [PATCH v2 03/14] perf: Add persistent event facilities Robert Richter
2013-06-14 2:15 ` Namhyung Kim
2013-06-14 7:20 ` Robert Richter
2013-06-24 9:32 ` Peter Zijlstra
2013-06-25 8:47 ` Robert Richter
2013-06-24 9:44 ` Peter Zijlstra
2013-06-25 8:41 ` Robert Richter
2013-06-24 9:48 ` Peter Zijlstra
2013-06-24 19:26 ` Borislav Petkov
2013-06-25 7:44 ` Peter Zijlstra
2013-06-25 9:24 ` Robert Richter
2013-06-25 9:37 ` Borislav Petkov
2013-06-25 10:51 ` Robert Richter
2013-06-25 15:29 ` Borislav Petkov
2013-06-25 16:14 ` Robert Richter
2013-06-11 16:42 ` [PATCH v2 04/14] MCE: Enable persistent event Robert Richter
2013-06-11 16:42 ` [PATCH v2 05/14] perf, persistent: Rework struct pers_event_desc Robert Richter
2013-06-11 16:42 ` [PATCH v2 06/14] perf, persistent: Remove rb_put() Robert Richter
2013-06-11 16:42 ` [PATCH v2 07/14] perf, persistent: Introduce get_persistent_event() Robert Richter
2013-06-11 16:42 ` [PATCH v2 08/14] perf, persistent: Reworking perf_get_persistent_event_fd() Robert Richter
2013-06-11 16:42 ` [PATCH v2 09/14] perf, persistent: Protect event lists with mutex Robert Richter
2013-06-11 16:42 ` [PATCH v2 10/14] perf, persistent: Avoid adding identical events Robert Richter
2013-06-11 16:42 ` [PATCH v2 11/14] perf, persistent: Implementing a persistent pmu Robert Richter
2013-06-11 16:42 ` [PATCH v2 12/14] perf, persistent: Name each persistent event Robert Richter
2013-06-11 16:42 ` [PATCH v2 13/14] perf, persistent: Exposing persistent events using sysfs Robert Richter
2013-06-14 2:36 ` Namhyung Kim
2013-06-14 8:57 ` Robert Richter
2013-06-11 16:42 ` [PATCH v2 14/14] perf, persistent: Allow multiple users for an event Robert Richter
2013-06-24 10:08 ` [PATCH v2 00/14] perf, persistent: Kernel updates for perf tool integration Peter Zijlstra
2013-06-25 10:46 ` Robert Richter [this message]
2013-06-24 10:22 ` Peter Zijlstra
2013-06-25 16:56 ` Robert Richter
2013-06-24 10:24 ` Peter Zijlstra
2013-06-24 15:25 ` Peter Zijlstra
2013-06-24 19:45 ` Ingo Molnar
2013-06-25 17:57 ` Robert Richter
2013-06-25 19:16 ` Borislav Petkov
2013-06-26 8:12 ` Robert Richter
2013-06-26 8:24 ` Borislav Petkov
2013-06-26 9:46 ` Ingo Molnar
2013-06-26 9:56 ` Borislav Petkov
2013-06-26 10:11 ` Robert Richter
2013-06-26 11:45 ` Ingo Molnar
2013-06-26 12:25 ` Ingo Molnar
2013-06-26 12:44 ` Robert Richter
2013-06-27 5:46 ` Namhyung Kim
2013-06-27 8:35 ` Borislav Petkov
2013-06-27 8:50 ` Ingo Molnar
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=20130625104616.GE21579@rric.localhost \
--to=rric@kernel.org \
--cc=acme@infradead.org \
--cc=bp@alien8.de \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).