Re: [PATCH 3/5] hw-breakpoints: Rewrite the hw-breakpoints layer on top of perf counters

Frederic Weisbecker
2009-09-14T21:36:07Z

On Mon, Sep 14, 2009 at 10:58:35PM +0530, K.Prasad wrote:
> On Thu, Sep 10, 2009 at 10:29:25AM +0200, Frederic Weisbecker wrote:
> > This patch rebase the implementation of the breakpoints API on top of
> > perf counters instances.
> >
> > The core breakpoint API has changed a bit:
> >
> > - register_kernel_hw_breakpoint() now takes a cpu as a parameter. For
> > now it doesn't support all cpu wide breakpoints but this may be
> > implemented soon.
> >
> > - unregister_kernel_hw_breakpoint() and unregister_user_hw_breakpoint()
> > have been unified in a single unregister_hw_breakpoint()
> >
> > Each breakpoints now match a perf counter which now handles the
> > register scheduling, thread/cpu attachment, etc..
> >
> [edited]
> >
> > -/*
> > - * Load the debug registers during startup of a CPU.
> > - */
> > -void load_debug_registers(void)
>
> It does not appear that perf handles CPUs that come up new (if else,
> blame my understanding of find_get_context():-)) and hence post breakpoint
> integration, the new CPUs wouldn't contain any breakpoint values (meant
> for all CPUs). As mentioned in my previous mail, this could be
> non-trivial lapse in debugging scenarios and even for users like
> ksym_tracer in ftrace. Your patch would want to retain the
> functionality of load_debug_registers().
>
> Thanks,
> K.Prasad
>

Ah it seems it can.
Look at:

static void __perf_counter_exit_cpu(void *info)
static void perf_counter_exit_cpu(int cpu)