Messages in this thread | | | Subject | Re: [patch, resend] x86, perf_counter, bts: optimize BTS overflow handling | From | Peter Zijlstra <> | Date | Tue, 15 Sep 2009 13:12:25 +0200 |
| |
Totally missed the first one, sorry for that :/
On Tue, 2009-09-15 at 13:00 +0200, Markus Metzger wrote: > Draining the BTS buffer on a buffer overflow interrupt takes too long > resulting in a kernel lockup when tracing the kernel. > > Restructure perf_counter sampling into sample creation and sample > output. > Prepare a single reference sample for BTS sampling and update the from > and to address fields when draining the BTS buffer. > Drain the entire BTS buffer between a single perf_output_begin() / > perf_output_end() pair.
Generally looks very nice, one thing though, why did you take regs out of perf_sample_data, now you get to pass around one extra param..
> CC: Peter Zijlstra <a.p.zijlstra@chello.nl> > Signed-off-by: Markus Metzger <markus.t.metzger@intel.com> > --- > arch/x86/kernel/cpu/perf_counter.c | 60 37 + 23 - 0 ! > include/linux/perf_counter.h | 68 64 + 4 - 0 ! > kernel/perf_counter.c | 306 161 + 145 - 0 ! > 3 files changed, 262 insertions(+), 172 deletions(-)
What is that diffstat thing? I always get things like:
kernel/sched.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
| |