[PATCH v5 2/2] [BUGFIX] kprobes: Fix "Failed to find blacklist" error on ia64 and ppc64
mpe at ellerman.id.au
Tue Jul 15 13:16:36 EST 2014
On Tue, 2014-07-15 at 11:24 +0900, Masami Hiramatsu wrote:
> (2014/07/15 11:11), Michael Ellerman wrote:
> > On Mon, 2014-07-14 at 10:17 -0700, Tony Luck wrote:
> >> On Tue, Jul 8, 2014 at 5:07 AM, Masami Hiramatsu
> >> <masami.hiramatsu.pt at hitachi.com> wrote:
> >>> Ping?
> >>> This patch can be applied without 1/2, and will fix ia64/ppc64 problem.
> >> Is somebody going to push this upstream? Another week has gone by,
> >> we are at -rc5, and I'm still seeing the
> >> Failed to find blacklist a00000010133b150
> >> messages on ia64.
> > I don't see those messages on ppc64, I don't know where the original report
> > that it was broken on ppc64 came from. So I'm a bit lukewarm on the patch.
> Right, on ppc64(ABIv1) it may be silently failed. Because each function
> descriptor has another entry on kallsyms, original code can't detect
OK, that would have been good to know :)
It's actually much worse than you describe. On ppc64 (ABIv1) we are
successfully blacklisting the function descriptors. But that doesn't prevent
you from probing the text address. So basically NOKPROBE_SYMBOL() does nothing
useful for us.
$ head -2 ../kprobes/blacklist
$ echo "p:atomic_notifier_call_chain .atomic_notifier_call_chain" > kprobe_events
$ echo 1 > events/kprobes/enable
available_events instances saved_cmdlines trace_options
available_tracers kprobe_events saved_cmdlines_size trace_pipe
buffer_size_kb kprobe_profile set_event tracing_cpumask
buffer_total_size_kb options snapshot tracing_max_latency
current_tracer per_cpu trace tracing_on
events printk_formats trace_clock tracing_thresh
free_buffer README trace_marker
$ Dumping ftrace buffer:
cpu 0x2: Vector: 400 (Instruction Access) at [c0000001defaf830]
current = 0xc0000001def57e40
paca = 0xc00000000fe00800 softe: 0 irq_happened: 0x01
pid = 1, comm = swapper/2
cpu 0x3: Vector: 400 (Instruction Access) at [c0000001ddbcc640]
current = 0xc0000001def5a100
paca = 0xc00000000fe00c00 softe: 0 irq_happened: 0x01
pid = -554326528, comm =
With your patch:
$ head -2 kprobes/blacklist
$ echo "p:notify_die .notify_die" > tracing/kprobe_events
-bash: echo: write error: Invalid argument
So that is much better.
More information about the Linuxppc-dev