This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [PATCH -tip 4/4] ftrace: Remove record freezing
- From: Steven Rostedt <rostedt at goodmis dot org>
- To: Masami Hiramatsu <mhiramat at redhat dot com>
- Cc: Ingo Molnar <mingo at elte dot hu>, lkml <linux-kernel at vger dot kernel dot org>, systemtap <systemtap at sources dot redhat dot com>, DLE <dle-develop at lists dot sourceforge dot net>, PrzemysÅawPaweÅczyk <przemyslaw at pawelczyk dot it>, Frederic Weisbecker <fweisbec at gmail dot com>
- Date: Thu, 04 Feb 2010 08:49:50 -0500
- Subject: Re: [PATCH -tip 4/4] ftrace: Remove record freezing
- References: <20100202214856.4694.72709.stgit@dhcp-100-2-132.bos.redhat.com> <20100202214925.4694.73469.stgit@dhcp-100-2-132.bos.redhat.com>
- Reply-to: rostedt at goodmis dot org
Sorry for the late reply.
On Tue, 2010-02-02 at 16:49 -0500, Masami Hiramatsu wrote:
> Remove record freezing. Because kprobes never puts probe on
> ftrace's mcount call anymore, it doesn't need ftrace to check
> whether kprobes on it.
>
> Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
> Cc: Ingo Molnar <mingo@elte.hu>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
-- Steve
> Cc: PrzemysÅaw PaweÅczyk <przemyslaw@pawelczyk.it>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> ---
>
> include/linux/ftrace.h | 1 -
> kernel/trace/ftrace.c | 39 ---------------------------------------
> 2 files changed, 0 insertions(+), 40 deletions(-)
>
> diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
> index 9d127ef..eb054ae 100644
> --- a/include/linux/ftrace.h
> +++ b/include/linux/ftrace.h
> @@ -143,7 +143,6 @@ enum {
> FTRACE_FL_ENABLED = (1 << 3),
> FTRACE_FL_NOTRACE = (1 << 4),
> FTRACE_FL_CONVERTED = (1 << 5),
> - FTRACE_FL_FROZEN = (1 << 6),
> };
>
> struct dyn_ftrace {
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 3d90661..1904797 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -22,7 +22,6 @@
> #include <linux/hardirq.h>
> #include <linux/kthread.h>
> #include <linux/uaccess.h>
> -#include <linux/kprobes.h>
> #include <linux/ftrace.h>
> #include <linux/sysctl.h>
> #include <linux/ctype.h>
> @@ -898,36 +897,6 @@ static struct dyn_ftrace *ftrace_free_records;
> } \
> }
>
> -#ifdef CONFIG_KPROBES
> -
> -static int frozen_record_count;
> -
> -static inline void freeze_record(struct dyn_ftrace *rec)
> -{
> - if (!(rec->flags & FTRACE_FL_FROZEN)) {
> - rec->flags |= FTRACE_FL_FROZEN;
> - frozen_record_count++;
> - }
> -}
> -
> -static inline void unfreeze_record(struct dyn_ftrace *rec)
> -{
> - if (rec->flags & FTRACE_FL_FROZEN) {
> - rec->flags &= ~FTRACE_FL_FROZEN;
> - frozen_record_count--;
> - }
> -}
> -
> -static inline int record_frozen(struct dyn_ftrace *rec)
> -{
> - return rec->flags & FTRACE_FL_FROZEN;
> -}
> -#else
> -# define freeze_record(rec) ({ 0; })
> -# define unfreeze_record(rec) ({ 0; })
> -# define record_frozen(rec) ({ 0; })
> -#endif /* CONFIG_KPROBES */
> -
> static void ftrace_free_rec(struct dyn_ftrace *rec)
> {
> rec->freelist = ftrace_free_records;
> @@ -1091,14 +1060,6 @@ static void ftrace_replace_code(int enable)
> !(rec->flags & FTRACE_FL_CONVERTED))
> continue;
>
> - /* ignore updates to this record's mcount site */
> - if (get_kprobe((void *)rec->ip)) {
> - freeze_record(rec);
> - continue;
> - } else {
> - unfreeze_record(rec);
> - }
> -
> failed = __ftrace_replace_code(rec, enable);
> if (failed) {
> rec->flags |= FTRACE_FL_FAILED;
>
>