Re: [PATCH v1 3/3] tracing: Use generic type for comparator function

From: Steven Rostedt
Date: Fri Oct 18 2019 - 16:08:14 EST


On Mon, 7 Oct 2019 16:56:56 +0300
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:

Hi Andy,

FYI, when sending more than one patch, you should have a cover letter.

Andrew,

Do you want to take this series?

Reviewed-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>

-- Steve

> Comparator function type, cmp_func_t, is defined in the types.h,
> use it in the code.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> ---
> kernel/trace/ftrace.c | 12 ++++++------
> kernel/trace/trace_branch.c | 8 ++++----
> kernel/trace/trace_stat.c | 6 ++----
> kernel/trace/trace_stat.h | 2 +-
> 4 files changed, 13 insertions(+), 15 deletions(-)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 62a50bf399d6..3bf9e805c46c 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -462,10 +462,10 @@ static void *function_stat_start(struct tracer_stat *trace)
>
> #ifdef CONFIG_FUNCTION_GRAPH_TRACER
> /* function graph compares on total time */
> -static int function_stat_cmp(void *p1, void *p2)
> +static int function_stat_cmp(const void *p1, const void *p2)
> {
> - struct ftrace_profile *a = p1;
> - struct ftrace_profile *b = p2;
> + const struct ftrace_profile *a = p1;
> + const struct ftrace_profile *b = p2;
>
> if (a->time < b->time)
> return -1;
> @@ -476,10 +476,10 @@ static int function_stat_cmp(void *p1, void *p2)
> }
> #else
> /* not function graph compares against hits */
> -static int function_stat_cmp(void *p1, void *p2)
> +static int function_stat_cmp(const void *p1, const void *p2)
> {
> - struct ftrace_profile *a = p1;
> - struct ftrace_profile *b = p2;
> + const struct ftrace_profile *a = p1;
> + const struct ftrace_profile *b = p2;
>
> if (a->counter < b->counter)
> return -1;
> diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c
> index 3ea65cdff30d..88e158d27965 100644
> --- a/kernel/trace/trace_branch.c
> +++ b/kernel/trace/trace_branch.c
> @@ -244,7 +244,7 @@ static int annotated_branch_stat_headers(struct seq_file *m)
> return 0;
> }
>
> -static inline long get_incorrect_percent(struct ftrace_branch_data *p)
> +static inline long get_incorrect_percent(const struct ftrace_branch_data *p)
> {
> long percent;
>
> @@ -332,10 +332,10 @@ annotated_branch_stat_next(void *v, int idx)
> return p;
> }
>
> -static int annotated_branch_stat_cmp(void *p1, void *p2)
> +static int annotated_branch_stat_cmp(const void *p1, const void *p2)
> {
> - struct ftrace_branch_data *a = p1;
> - struct ftrace_branch_data *b = p2;
> + const struct ftrace_branch_data *a = p1;
> + const struct ftrace_branch_data *b = p2;
>
> long percent_a, percent_b;
>
> diff --git a/kernel/trace/trace_stat.c b/kernel/trace/trace_stat.c
> index 75bf1bcb4a8a..dd9960a2dd0c 100644
> --- a/kernel/trace/trace_stat.c
> +++ b/kernel/trace/trace_stat.c
> @@ -72,9 +72,7 @@ static void destroy_session(struct stat_session *session)
> kfree(session);
> }
>
> -typedef int (*cmp_stat_t)(void *, void *);
> -
> -static int insert_stat(struct rb_root *root, void *stat, cmp_stat_t cmp)
> +static int insert_stat(struct rb_root *root, void *stat, cmp_func_t cmp)
> {
> struct rb_node **new = &(root->rb_node), *parent = NULL;
> struct stat_node *data;
> @@ -112,7 +110,7 @@ static int insert_stat(struct rb_root *root, void *stat, cmp_stat_t cmp)
> * This one will force an insertion as right-most node
> * in the rbtree.
> */
> -static int dummy_cmp(void *p1, void *p2)
> +static int dummy_cmp(const void *p1, const void *p2)
> {
> return -1;
> }
> diff --git a/kernel/trace/trace_stat.h b/kernel/trace/trace_stat.h
> index 8786d17caf49..31d7dc5bf1db 100644
> --- a/kernel/trace/trace_stat.h
> +++ b/kernel/trace/trace_stat.h
> @@ -16,7 +16,7 @@ struct tracer_stat {
> void *(*stat_start)(struct tracer_stat *trace);
> void *(*stat_next)(void *prev, int idx);
> /* Compare two entries for stats sorting */
> - int (*stat_cmp)(void *p1, void *p2);
> + cmp_func_t stat_cmp;
> /* Print a stat entry */
> int (*stat_show)(struct seq_file *s, void *p);
> /* Release an entry */