From: "K.Prasad" <prasad@linux.vnet.ibm.com>
To: Li Zefan <lizf@cn.fujitsu.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>, Ingo Molnar <mingo@elte.hu>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/4] ksym_tracer: Fix to make the tracer work
Date: Wed, 30 Dec 2009 20:35:30 +0530 [thread overview]
Message-ID: <20091230150530.GA3401@in.ibm.com> (raw)
In-Reply-To: <4B3AF19E.1010201@cn.fujitsu.com>
On Wed, Dec 30, 2009 at 02:22:22PM +0800, Li Zefan wrote:
> ksym tracer doesn't work:
>
> # echo tasklist_lock:rw- > ksym_trace_filter
> -bash: echo: write error: No such device
>
> It's because we pass to perf_event_create_kernel_counter()
> a cpu number which is not present.
>
> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
> ---
> kernel/hw_breakpoint.c | 10 +++++++---
> kernel/trace/trace_ksym.c | 1 -
> 2 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/hw_breakpoint.c b/kernel/hw_breakpoint.c
> index dbcbf6a..50dbd59 100644
> --- a/kernel/hw_breakpoint.c
> +++ b/kernel/hw_breakpoint.c
> @@ -40,6 +40,7 @@
> #include <linux/percpu.h>
> #include <linux/sched.h>
> #include <linux/init.h>
> +#include <linux/cpu.h>
> #include <linux/smp.h>
>
> #include <linux/hw_breakpoint.h>
> @@ -388,7 +389,8 @@ register_wide_hw_breakpoint(struct perf_event_attr *attr,
> if (!cpu_events)
> return ERR_PTR(-ENOMEM);
>
> - for_each_possible_cpu(cpu) {
> + get_online_cpus();
> + for_each_online_cpu(cpu) {
> pevent = per_cpu_ptr(cpu_events, cpu);
> bp = perf_event_create_kernel_counter(attr, cpu, -1, triggered);
>
Frederic must have used for_each_possible_cpu() to account for CPUs that
are offline at the time of registration, but may eventually turn online.
Since register_wide_hw_breakpoint() interface is designed to deliver
system-wide breakpoints, the debug registers of a new online CPU will
should have the breakpoints populated to comprehensively notify all
memory accesses over target address.
I'd rather wait to hear from Frederic to know why
perf_event_create_kernel_counter() returns an error when run for an
offline cpu and how it can be solved.
Thanks,
K.Prasad
next prev parent reply other threads:[~2009-12-30 15:05 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-30 6:22 [PATCH 1/4] ksym_tracer: Fix to make the tracer work Li Zefan
2009-12-30 6:23 ` [PATCH 2/4] ksym_tracer: Fix to allow writing newline to ksym_trace_filter Li Zefan
2009-12-30 9:31 ` [tip:tracing/urgent] " tip-bot for Li Zefan
2009-12-30 6:23 ` [PATCH 3/4] ksym_tracer: Fix race when incrementing count Li Zefan
2009-12-30 9:31 ` [tip:tracing/urgent] " tip-bot for Li Zefan
2009-12-30 6:24 ` [PATCH 4/4] ksym_tracer: Remove trace_stat Li Zefan
2009-12-30 9:31 ` [tip:tracing/urgent] " tip-bot for Li Zefan
2009-12-30 9:30 ` [tip:tracing/urgent] ksym_tracer: Fix to make the tracer work tip-bot for Li Zefan
2009-12-30 15:05 ` K.Prasad [this message]
2009-12-31 5:54 ` [PATCH 1/4] " Li Zefan
2010-01-10 3:10 ` Frederic Weisbecker
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=20091230150530.GA3401@in.ibm.com \
--to=prasad@linux.vnet.ibm.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.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.