From: "Frank Ch. Eigler" <fche@redhat.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mel Gorman <mgorman@suse.de>, Ingo Molnar <mingo@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
SystemTap <systemtap@sourceware.org>
Subject: Re: systemtap broken by removal of register_timer_hook
Date: Wed, 3 Apr 2013 10:44:28 -0400 [thread overview]
Message-ID: <20130403144428.GA15432@redhat.com> (raw)
In-Reply-To: <CAFTL4hxx_GHoa4uguSAtY0A=cC43qJPKvpqaoguS-WAjFj+HSw@mail.gmail.com>
Hi -
On Wed, Apr 03, 2013 at 02:49:53PM +0200, Frederic Weisbecker wrote:
> Sounds good, would you like to propose a version? We are also
> interested in a timer tick event tracepoint for dynticks debugging.
How about this?
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Wed Apr 3 10:35:21 2013 -0400
profiling: add profile_tick tracepoint
Commit ba6fdda4 removed the timer_hook mechanism for modules to listen
to profiling timer ticks (without having to set up more complicated
perf mechanisms). To reduce the impact on out-of-tree users, a
TRACE_EVENT-flavoured tracepoint is added in its place. Tested with
perf and systemtap.
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Mel Gorman <mgorman@suse.de>
Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
diff --git a/include/trace/events/profile.h b/include/trace/events/profile.h
new file mode 100644
index 0000000..b48b6fe
--- /dev/null
+++ b/include/trace/events/profile.h
@@ -0,0 +1,35 @@
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM profile
+
+#if !defined(_TRACE_PROFILE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_PROFILE_H
+
+#include <linux/tracepoint.h>
+
+
+struct pt_regs;
+
+/**
+ * profile_tick - called when the profiling timer ticks
+ * @regs: pointer to struct pt_regs*
+ */
+
+TRACE_EVENT(profile_tick,
+ TP_PROTO(int type, struct pt_regs *regs),
+ TP_ARGS(type, regs),
+ TP_STRUCT__entry(
+ __field( int, type )
+ __field( struct pt_regs*, regs )
+ ),
+ TP_fast_assign(
+ __entry->type = type;
+ __entry->regs = regs;
+ ),
+ TP_printk("type=%d regs=%p", __entry->type, __entry->regs)
+);
+
+
+#endif /* _TRACE_PROFILE_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/kernel/profile.c b/kernel/profile.c
index dc3384e..d61f921 100644
--- a/kernel/profile.c
+++ b/kernel/profile.c
@@ -29,6 +29,9 @@
#include <asm/irq_regs.h>
#include <asm/ptrace.h>
+#define CREATE_TRACE_POINTS
+#include <trace/events/profile.h>
+
struct profile_hit {
u32 pc, hits;
};
@@ -414,6 +417,8 @@ void profile_tick(int type)
{
struct pt_regs *regs = get_irq_regs();
+ trace_profile_tick(type, regs);
+
if (!user_mode(regs) && prof_cpu_mask != NULL &&
cpumask_test_cpu(smp_processor_id(), prof_cpu_mask))
profile_hit(type, (void *)profile_pc(regs));
next prev parent reply other threads:[~2013-04-03 14:45 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-03 7:50 systemtap broken by removal of register_timer_hook Mel Gorman
2013-04-03 11:01 ` Frederic Weisbecker
[not found] ` <CAFTL4hyYezB2ZxM-GJ70VoxOeRSG64V6u+nX2hTuhF30R-GdPg__32168.962484184$1364986928$gmane$org@mail.gmail.com>
2013-04-03 12:29 ` Frank Ch. Eigler
2013-04-03 12:49 ` Frederic Weisbecker
2013-04-03 14:44 ` Frank Ch. Eigler [this message]
2013-04-03 18:38 ` Josh Stone
2013-04-04 12:46 ` Frederic Weisbecker
2013-04-19 14:46 ` Frank Ch. Eigler
2013-04-30 0:19 ` Frederic Weisbecker
2013-04-30 17:27 ` Frank Ch. Eigler
2013-05-06 23:12 ` Frederic Weisbecker
2013-04-10 11:24 ` Ingo Molnar
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=20130403144428.GA15432@redhat.com \
--to=fche@redhat.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@kernel.org \
--cc=systemtap@sourceware.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.