lkml.org 
[lkml]   [2017]   [Apr]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[for-next][PATCH 10/33] ftrace: Move the probe function into the tracing directory
    From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

    As nothing outside the tracing directory uses the function probes mechanism,
    I'm moving the prototypes out of the include/linux/ftrace.h and into the
    local kernel/trace/trace.h header. I plan on making them hook to the
    trace_array structure which is local to kernel/trace, and I do not want to
    expose it to the rest of the kernel. This requires that the probe functions
    must also be local to tracing. But luckily nothing else uses them.

    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    ---
    include/linux/ftrace.h | 24 ------------------------
    kernel/trace/trace.h | 25 +++++++++++++++++++++++++
    2 files changed, 25 insertions(+), 24 deletions(-)

    diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
    index 06b2990a35e4..3e790ff1c501 100644
    --- a/include/linux/ftrace.h
    +++ b/include/linux/ftrace.h
    @@ -360,30 +360,6 @@ void ftrace_bug(int err, struct dyn_ftrace *rec);

    struct seq_file;

    -struct ftrace_probe_ops {
    - void (*func)(unsigned long ip,
    - unsigned long parent_ip,
    - void **data);
    - int (*init)(struct ftrace_probe_ops *ops,
    - unsigned long ip, void **data);
    - void (*free)(struct ftrace_probe_ops *ops,
    - unsigned long ip, void **data);
    - int (*print)(struct seq_file *m,
    - unsigned long ip,
    - struct ftrace_probe_ops *ops,
    - void *data);
    -};
    -
    -extern int
    -register_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
    - void *data);
    -extern void
    -unregister_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
    - void *data);
    -extern void
    -unregister_ftrace_function_probe_func(char *glob, struct ftrace_probe_ops *ops);
    -extern void unregister_ftrace_function_probe_all(char *glob);
    -
    extern int ftrace_text_reserved(const void *start, const void *end);

    extern int ftrace_nr_registered_ops(void);
    diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
    index 31a4997b67c6..2ff6d49fa5ca 100644
    --- a/kernel/trace/trace.h
    +++ b/kernel/trace/trace.h
    @@ -923,6 +923,31 @@ static inline void ftrace_pid_follow_fork(struct trace_array *tr, bool enable) {
    #endif /* CONFIG_FUNCTION_TRACER */

    #if defined(CONFIG_FUNCTION_TRACER) && defined(CONFIG_DYNAMIC_FTRACE)
    +
    +struct ftrace_probe_ops {
    + void (*func)(unsigned long ip,
    + unsigned long parent_ip,
    + void **data);
    + int (*init)(struct ftrace_probe_ops *ops,
    + unsigned long ip, void **data);
    + void (*free)(struct ftrace_probe_ops *ops,
    + unsigned long ip, void **data);
    + int (*print)(struct seq_file *m,
    + unsigned long ip,
    + struct ftrace_probe_ops *ops,
    + void *data);
    +};
    +
    +extern int
    +register_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
    + void *data);
    +extern void
    +unregister_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
    + void *data);
    +extern void
    +unregister_ftrace_function_probe_func(char *glob, struct ftrace_probe_ops *ops);
    +extern void unregister_ftrace_function_probe_all(char *glob);
    +
    void ftrace_create_filter_files(struct ftrace_ops *ops,
    struct dentry *parent);
    void ftrace_destroy_filter_files(struct ftrace_ops *ops);
    --
    2.10.2

    \
     
     \ /
      Last update: 2017-04-21 23:37    [W:2.471 / U:0.848 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site