Re: [RFC][PATCH 5/5] perfcounter: Add support for kernel hardwarebreakpoints

From: Arnaldo Carvalho de Melo
Date: Wed Jul 29 2009 - 10:58:12 EST


Em Wed, Jul 29, 2009 at 11:22:52AM +0200, Peter Zijlstra escreveu:
> On Wed, 2009-07-29 at 12:07 +0530, K.Prasad wrote:
>
> > > That still doesn't provide per-cpu breakpoints.
> > >
> >
> > Yes, it doesn't provide a per-cpu only implementation. One can obtain
> > the per-cpu data from the system-wide breakpoints by filtering it for a
> > given CPU (agreed, it will associated overhead).
> >
> > A true per-cpu breakpoint implementation that co-exists with
> > system-wide and per-task breakpoints will be difficult. It might require
> > the re-introduction of some old features and a few new ones (like switching
> > between kernel and user-space breakpoints at syscall time) that were
> > rejected earlier by the community.
>
> I'm not clear on why you'd need to switch breakpoints on syscall entry.
> You can simply leave the kernel address breakpoint around in userspace,
> they're not able to poke at that address space anyway.
>
> > Also, the reason for a per-cpu only breakpoint (user and kernel-space)
> > isn't very obvious. While kernel variables can be read/written
> > throughout the system and user-space variables are per-task, the need
> > for obtaining per-cpu information isn't clear.
>
> Well, suppose you're monitoring a per-cpu variable, or interested in the
> effects of a workload confined to 1 cpu or node, there is no reason to
> have this breakpoint on all cpus.

I was going to talk about exactly that, CPU isolation for one specific
workload, I don't want that hits on tcp_v4_rcv on another CPU get
counted, just the ones on that specific CPU.

The other CPUs can be given a break (pun intended :-P) by not having to
process traps we're uninterested in.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/