mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Chengming Zhou <zhouchengming@bytedance.com>
To: kernel test robot <lkp@intel.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Mark Rutland <mark.rutland@arm.com>
Subject: Re: [External] [mark:arm64/ftrace/per-callsite-ops 1/6] kernel/trace/fgraph.c:37:12: warning: no previous prototype for 'ftrace_enable_ftrace_graph_caller'
Date: Sat, 30 Apr 2022 14:12:23 +0800	[thread overview]
Message-ID: <6a86e452-d24d-b371-f343-7e77faeed7ca@bytedance.com> (raw)
In-Reply-To: <202204300758.ces9aD6G-lkp@intel.com>

On 2022/4/30 07:56, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/ftrace/per-callsite-ops
> head:   2aaba224d039a36f7eca5ad68c77686d3546e4fa
> commit: 718b0fd1ccf6f04340cb3ad48b667ca05bb7a31c [1/6] ftrace: cleanup ftrace_graph_caller enable and disable
> config: sh-buildonly-randconfig-r002-20220428 (https://download.01.org/0day-ci/archive/20220430/202204300758.ces9aD6G-lkp@intel.com/config)
> compiler: sh4-linux-gcc (GCC) 11.3.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?id=718b0fd1ccf6f04340cb3ad48b667ca05bb7a31c
>         git remote add mark https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git
>         git fetch --no-tags mark arm64/ftrace/per-callsite-ops
>         git checkout 718b0fd1ccf6f04340cb3ad48b667ca05bb7a31c
>         # save the config file
>         mkdir build_dir && cp config build_dir/.config
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=sh SHELL=/bin/bash kernel/trace/
> 

Thanks for the report.

BTW, there are so many "-Wmissing-prototypes" warnings if build kernel with "W=1"...

I can't reproduce this warning on x86_64 because the declarations in <linux/ftrace.h>

#ifdef CONFIG_DYNAMIC_FTRACE
...
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
extern void ftrace_graph_caller(void);
extern int ftrace_enable_ftrace_graph_caller(void);
extern int ftrace_disable_ftrace_graph_caller(void);
#else
static inline int ftrace_enable_ftrace_graph_caller(void) { return 0; }
static inline int ftrace_disable_ftrace_graph_caller(void) { return 0; }
#endif
...
#endif

Since x86_64 select HAVE_FUNCTION_GRAPH_TRACER only when DYNAMIC_FTRACE,
so these declarations can be seen by fgraph.c

But on ARCH=sh, HAVE_FUNCTION_GRAPH_TRACER can be selected when !DYNAMIC_FTRACE,
so these declarations can't be seen by fgraph.c. But in this case, these
functions are not used anywhere. So there are no real problems exist.

Maybe it's better to put ftrace_[enable,disable]_ftrace_graph_caller definitions
in "#ifdef CONFIG_DYNAMIC_FTRACE" in fgraph.c, to suppress this warning.

Thanks.

> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> All warnings (new ones prefixed by >>):
> 
>>> kernel/trace/fgraph.c:37:12: warning: no previous prototype for 'ftrace_enable_ftrace_graph_caller' [-Wmissing-prototypes]
>       37 | int __weak ftrace_enable_ftrace_graph_caller(void)
>          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> kernel/trace/fgraph.c:46:12: warning: no previous prototype for 'ftrace_disable_ftrace_graph_caller' [-Wmissing-prototypes]
>       46 | int __weak ftrace_disable_ftrace_graph_caller(void)
>          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>    kernel/trace/fgraph.c:241:15: warning: no previous prototype for 'ftrace_return_to_handler' [-Wmissing-prototypes]
>      241 | unsigned long ftrace_return_to_handler(unsigned long frame_pointer)
>          |               ^~~~~~~~~~~~~~~~~~~~~~~~
>    kernel/trace/fgraph.c:356:6: warning: no previous prototype for 'ftrace_graph_sleep_time_control' [-Wmissing-prototypes]
>      356 | void ftrace_graph_sleep_time_control(bool enable)
>          |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> 
> vim +/ftrace_enable_ftrace_graph_caller +37 kernel/trace/fgraph.c
> 
>     32	
>     33	/*
>     34	 * archs can override this function if they must do something
>     35	 * to enable hook for graph tracer.
>     36	 */
>   > 37	int __weak ftrace_enable_ftrace_graph_caller(void)
>     38	{
>     39		return 0;
>     40	}
>     41	
>     42	/*
>     43	 * archs can override this function if they must do something
>     44	 * to disable hook for graph tracer.
>     45	 */
>   > 46	int __weak ftrace_disable_ftrace_graph_caller(void)
>     47	{
>     48		return 0;
>     49	}
>     50	
> 

      reply	other threads:[~2022-04-30  6:12 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-29 23:56 kernel test robot
2022-04-30  6:12 ` Chengming Zhou [this message]

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=6a86e452-d24d-b371-f343-7e77faeed7ca@bytedance.com \
    --to=zhouchengming@bytedance.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=mark.rutland@arm.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®