Messages in this thread | | | Date | Fri, 24 Jul 2009 16:02:56 +0200 | Subject | Re: [RFC][PATCH 5/5] perfcounter: Add support for kernel hardware breakpoints | From | Frédéric Weisbecker <> |
| |
2009/7/23 Peter Zijlstra <a.p.zijlstra@chello.nl>: > On Mon, 2009-07-20 at 13:08 -0400, Frederic Weisbecker wrote: >> This adds the support for kernel hardware breakpoints in perfcounter. >> It is added as a new type of software counter and can be defined by >> using the counter number 5 and by passsing the address of the >> breakpoint to set through the config attribute. > > Is there a limit to these hardware breakpoints? If so, the software > counter model is not sufficient, since we assume we can always schedule > all software counters. However if you were to add more counters than you > have hardware breakpoints you're hosed. > >
Hmm, indeed. But this patch handles this case:
+static const struct pmu *bp_perf_counter_init(struct perf_counter *counter) +{ + if (hw_breakpoint_perf_init((unsigned long)counter->attr.config)) + return NULL; +
IIRC, hw_breakpoint_perf_init() calls register_kernel_breakpoint() which in turn returns -ENOSPC if we haven't any breakpoint room left.
It seems we can only set 4 breakpoints simultaneously in x86, or something close to that.
| |