mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Paul Mackerras <paulus@samba.org>, Ingo Molnar <mingo@elte.hu>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 01/15] perf: allow for custom overflow handlers
Date: Fri, 20 Nov 2009 22:19:43 +0100	[thread overview]
Message-ID: <20091120212508.222339539@chello.nl> (raw)
In-Reply-To: <20091120211942.676891948@chello.nl>

[-- Attachment #1: perf-overflow.patch --]
[-- Type: text/plain, Size: 1743 bytes --]

in-kernel perf users might wish to have custom actions on the sample
interrupt.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
---
 include/linux/perf_event.h |    6 ++++++
 kernel/perf_event.c        |    8 +++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

Index: linux-2.6/include/linux/perf_event.h
===================================================================
--- linux-2.6.orig/include/linux/perf_event.h
+++ linux-2.6/include/linux/perf_event.h
@@ -567,6 +567,8 @@ struct perf_pending_entry {
 
 typedef void (*perf_callback_t)(struct perf_event *, void *);
 
+struct perf_sample_data;
+
 /**
  * struct perf_event - performance event kernel representation:
  */
@@ -658,6 +660,10 @@ struct perf_event {
 	struct pid_namespace		*ns;
 	u64				id;
 
+	void (*overflow_handler)(struct perf_event *event,
+			int nmi, struct perf_sample_data *data,
+			struct pt_regs *regs);
+
 #ifdef CONFIG_EVENT_PROFILE
 	struct event_filter		*filter;
 #endif
Index: linux-2.6/kernel/perf_event.c
===================================================================
--- linux-2.6.orig/kernel/perf_event.c
+++ linux-2.6/kernel/perf_event.c
@@ -3710,7 +3710,11 @@ static int __perf_event_overflow(struct 
 			perf_event_disable(event);
 	}
 
-	perf_event_output(event, nmi, data, regs);
+	if (event->overflow_handler)
+		event->overflow_handler(event, nmi, data, regs);
+	else
+		perf_event_output(event, nmi, data, regs);
+
 	return ret;
 }
 
@@ -4836,6 +4840,8 @@ inherit_event(struct perf_event *parent_
 	if (parent_event->attr.freq)
 		child_event->hw.sample_period = parent_event->hw.sample_period;
 
+	child_event->overflow_handler = parent_event->overflow_handler;
+
 	/*
 	 * Link it up in the child's context:
 	 */

-- 


  reply	other threads:[~2009-11-20 21:28 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-20 21:19 [PATCH 00/15] perf_event patches Peter Zijlstra
2009-11-20 21:19 ` Peter Zijlstra [this message]
2009-11-20 22:00   ` [PATCH 01/15] perf: allow for custom overflow handlers Frederic Weisbecker
2009-11-21 13:41   ` [tip:perf/core] perf: Allow " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 02/15] perf: optimize some swcounter attr.sample_period==1 paths Peter Zijlstra
2009-11-21 13:41   ` [tip:perf/core] perf: Optimize " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 03/15] perf: optimize perf_swevent_ctx_event() Peter Zijlstra
2009-11-21 13:41   ` [tip:perf/core] perf: Optimize perf_swevent_ctx_event() tip-bot for Peter Zijlstra
2009-11-23  5:50   ` [PATCH 03/15] perf: optimize perf_swevent_ctx_event() Paul Mackerras
2009-11-23  7:31     ` Peter Zijlstra
2009-11-23  8:38       ` Peter Zijlstra
2009-11-20 21:19 ` [PATCH 04/15] perf: optimize perf_event_task_ctx() Peter Zijlstra
2009-11-21 13:41   ` [tip:perf/core] perf: Optimize perf_event_task_ctx() tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 05/15] perf: optimize perf_event_comm_ctx() Peter Zijlstra
2009-11-21 13:41   ` [tip:perf/core] perf: Optimize perf_event_comm_ctx() tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 06/15] perf: optimize perf_event_mmap_ctx() Peter Zijlstra
2009-11-21 13:42   ` [tip:perf/core] perf: Optimize perf_event_mmap_ctx() tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 07/15] perf: Fix PERF_FORMAT_GROUP scale info Peter Zijlstra
2009-11-21 13:42   ` [tip:perf/core] " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 08/15] perf: optimize perf_event_task_sched_out Peter Zijlstra
2009-11-21 13:42   ` [tip:perf/core] perf: Optimize perf_event_task_sched_out tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 09/15] perf: optimize __perf_event_read() Peter Zijlstra
2009-11-21 13:42   ` [tip:perf/core] perf: Optimize __perf_event_read() tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 10/15] perf: simplify __perf_event_sync_stat Peter Zijlstra
2009-11-21 13:43   ` [tip:perf/core] perf: Simplify __perf_event_sync_stat tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 11/15] perf: simplify __perf_event_read Peter Zijlstra
2009-11-21 13:43   ` [tip:perf/core] perf: Simplify __perf_event_read tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 12/15] perf: fix time locking Peter Zijlstra
2009-11-21 13:43   ` [tip:perf/core] perf: Fix " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 13/15] perf: fix event scaling for inherited counters Peter Zijlstra
2009-11-21 13:43   ` [tip:perf/core] perf: Fix " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 14/15] perf: fix locking for PERF_FORMAT_GROUP Peter Zijlstra
2009-11-21 13:44   ` [tip:perf/core] perf: Fix " tip-bot for Peter Zijlstra
2009-11-20 21:19 ` [PATCH 15/15] perf_events: fix default watermark calculation Peter Zijlstra
2009-10-23 12:56   ` [PATCH] " Stephane Eranian
2009-11-18 14:35     ` Peter Zijlstra
2009-11-21 13:44     ` [tip:perf/core] perf_events: Fix " tip-bot for Stephane Eranian
2009-11-23  5:52 ` [PATCH 00/15] perf_event patches Paul Mackerras

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091120212508.222339539@chello.nl \
    --to=a.p.zijlstra@chello.nl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®