2018-05-09 09:45:09

by Yisheng Xie

[permalink] [raw]
Subject: [PATCH resend v2] ftrace: nuke clear_ftrace_function

clear_ftrace_function is not used outside of ftrace.c and is not help to
use a function, so nuke it per Steve's suggestion.

Suggested-by: Steven Rostedt <[email protected]>
Signed-off-by: Yisheng Xie <[email protected]>
---
v2:
- nuke clear_ftrace_function instead of use it - per Steve

v1:
- https://lkml.org/lkml/2018/1/29/944

include/linux/ftrace.h | 2 --
kernel/trace/ftrace.c | 13 +------------
2 files changed, 1 insertion(+), 14 deletions(-)

diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 9c3c9a3..15518b5 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -223,7 +223,6 @@ enum ftrace_tracing_type_t {
*/
int register_ftrace_function(struct ftrace_ops *ops);
int unregister_ftrace_function(struct ftrace_ops *ops);
-void clear_ftrace_function(void);

extern void ftrace_stub(unsigned long a0, unsigned long a1,
struct ftrace_ops *op, struct pt_regs *regs);
@@ -239,7 +238,6 @@ static inline int ftrace_nr_registered_ops(void)
{
return 0;
}
-static inline void clear_ftrace_function(void) { }
static inline void ftrace_kill(void) { }
static inline void ftrace_free_init_mem(void) { }
static inline void ftrace_free_mem(struct module *mod, void *start, void *end) { }
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 8d83bcf..d4984f4 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -192,17 +192,6 @@ static void ftrace_pid_func(unsigned long ip, unsigned long parent_ip,
op->saved_func(ip, parent_ip, op, regs);
}

-/**
- * clear_ftrace_function - reset the ftrace function
- *
- * This NULLs the ftrace function and in essence stops
- * tracing. There may be lag
- */
-void clear_ftrace_function(void)
-{
- ftrace_trace_function = ftrace_stub;
-}
-
static void ftrace_sync(struct work_struct *work)
{
/*
@@ -6689,7 +6678,7 @@ void ftrace_kill(void)
{
ftrace_disabled = 1;
ftrace_enabled = 0;
- clear_ftrace_function();
+ ftrace_trace_function = ftrace_stub;
}

/**
--
1.7.12.4



2018-05-09 12:57:59

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH resend v2] ftrace: nuke clear_ftrace_function

On Wed, 9 May 2018 17:33:56 +0800
Yisheng Xie <[email protected]> wrote:

> clear_ftrace_function is not used outside of ftrace.c and is not help to
> use a function, so nuke it per Steve's suggestion.
>
> Suggested-by: Steven Rostedt <[email protected]>
> Signed-off-by: Yisheng Xie <[email protected]>
> ---
> v2:
> - nuke clear_ftrace_function instead of use it - per Steve
>
> v1:
> - https://lkml.org/lkml/2018/1/29/944
>
> include/linux/ftrace.h | 2 --
> kernel/trace/ftrace.c | 13 +------------
> 2 files changed, 1 insertion(+), 14 deletions(-)
>
> diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
> index 9c3c9a3..15518b5 100644
> --- a/include/linux/ftrace.h
> +++ b/include/linux/ftrace.h
> @@ -223,7 +223,6 @@ enum ftrace_tracing_type_t {
> */
> int register_ftrace_function(struct ftrace_ops *ops);
> int unregister_ftrace_function(struct ftrace_ops *ops);
> -void clear_ftrace_function(void);
>
> extern void ftrace_stub(unsigned long a0, unsigned long a1,
> struct ftrace_ops *op, struct pt_regs *regs);
> @@ -239,7 +238,6 @@ static inline int ftrace_nr_registered_ops(void)
> {
> return 0;
> }
> -static inline void clear_ftrace_function(void) { }
> static inline void ftrace_kill(void) { }
> static inline void ftrace_free_init_mem(void) { }
> static inline void ftrace_free_mem(struct module *mod, void *start, void *end) { }
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 8d83bcf..d4984f4 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -192,17 +192,6 @@ static void ftrace_pid_func(unsigned long ip, unsigned long parent_ip,
> op->saved_func(ip, parent_ip, op, regs);
> }
>
> -/**
> - * clear_ftrace_function - reset the ftrace function
> - *
> - * This NULLs the ftrace function and in essence stops
> - * tracing. There may be lag
> - */

I agree that the function should be removed, but the comment is still
relevant.

> -void clear_ftrace_function(void)
> -{
> - ftrace_trace_function = ftrace_stub;
> -}
> -
> static void ftrace_sync(struct work_struct *work)
> {
> /*
> @@ -6689,7 +6678,7 @@ void ftrace_kill(void)
> {
> ftrace_disabled = 1;
> ftrace_enabled = 0;
> - clear_ftrace_function();

/* This will stop tracing, but there may be a lag */

-- Steve

> + ftrace_trace_function = ftrace_stub;
> }
>
> /**


2018-05-10 00:19:26

by Yisheng Xie

[permalink] [raw]
Subject: [PATCH v3] ftrace: nuke clear_ftrace_function

clear_ftrace_function is not used outside of ftrace.c and is not help to
use a function, so nuke it per Steve's suggestion.

Suggested-by: Steven Rostedt <[email protected]>
Signed-off-by: Yisheng Xie <[email protected]>
---
v3:
- remove clear_ftrace_function() but make comment in line. - per Steve

v2:
- nuke clear_ftrace_function instead of use it - per Steve

v1:
- https://lkml.org/lkml/2018/1/29/944

include/linux/ftrace.h | 2 --
kernel/trace/ftrace.c | 14 ++------------
2 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 9c3c9a3..15518b5 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -223,7 +223,6 @@ enum ftrace_tracing_type_t {
*/
int register_ftrace_function(struct ftrace_ops *ops);
int unregister_ftrace_function(struct ftrace_ops *ops);
-void clear_ftrace_function(void);

extern void ftrace_stub(unsigned long a0, unsigned long a1,
struct ftrace_ops *op, struct pt_regs *regs);
@@ -239,7 +238,6 @@ static inline int ftrace_nr_registered_ops(void)
{
return 0;
}
-static inline void clear_ftrace_function(void) { }
static inline void ftrace_kill(void) { }
static inline void ftrace_free_init_mem(void) { }
static inline void ftrace_free_mem(struct module *mod, void *start, void *end) { }
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 8d83bcf..46e40a4 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -192,17 +192,6 @@ static void ftrace_pid_func(unsigned long ip, unsigned long parent_ip,
op->saved_func(ip, parent_ip, op, regs);
}

-/**
- * clear_ftrace_function - reset the ftrace function
- *
- * This NULLs the ftrace function and in essence stops
- * tracing. There may be lag
- */
-void clear_ftrace_function(void)
-{
- ftrace_trace_function = ftrace_stub;
-}
-
static void ftrace_sync(struct work_struct *work)
{
/*
@@ -6689,7 +6678,8 @@ void ftrace_kill(void)
{
ftrace_disabled = 1;
ftrace_enabled = 0;
- clear_ftrace_function();
+ /* This will stop tracing, but there may be a lag */
+ ftrace_trace_function = ftrace_stub;
}

/**
--
1.7.12.4