All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@kernel.org>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Nathan Chancellor <nathan@kernel.org>,
	kernel test robot <lkp@intel.com>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Masahiro Yamada <masahiroy@kernel.org>,
	kbuild-all@lists.01.org, clang-built-linux@googlegroups.com,
	linux-kernel@vger.kernel.org,
	Michael Ellerman <mpe@ellerman.id.au>
Subject: Re: arch/powerpc/kernel/optprobes.c:34:1: error: unused function 'is_kprobe_ppc_optinsn_slot'
Date: Wed, 12 May 2021 21:50:57 +0900	[thread overview]
Message-ID: <20210512215057.6875aeaf67fb31495ab29987@kernel.org> (raw)
In-Reply-To: <520bd3e7-ddee-bbee-0735-6aad29acb5bb@csgroup.eu>

On Wed, 12 May 2021 11:52:30 +0200
Christophe Leroy <christophe.leroy@csgroup.eu> wrote:

> 
> 
> Le 12/05/2021 à 11:36, Christophe Leroy a écrit :
> > 
> > 
> > Le 11/05/2021 à 20:46, Nathan Chancellor a écrit :
> >> On 5/11/2021 9:47 AM, Christophe Leroy wrote:
> >>> Hi All,
> >>>
> >>> Le 11/05/2021 à 18:30, kernel test robot a écrit :
> >>>> Hi Christophe,
> >>>>
> >>>> First bad commit (maybe != root cause):
> >>>>
> >>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> >>>> head:   1140ab592e2ebf8153d2b322604031a8868ce7a5
> >>>> commit: eacf4c0202654adfa94bbb17b5c5c77c0be14af8 powerpc: Enable OPTPROBES on PPC32
> > 
> > Ok, the problem appears on PPC32 with that patch, but it must have been there on PPC64 since the 
> > implementation of optprobes with commit 51c9c0843993 ("powerpc/kprobes: Implement Optprobes")
> > 
> > 
> >>>> date:   3 weeks ago
> >>>> config: powerpc-randconfig-r033-20210511 (attached as .config)
> >>>> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
> >>>> a0fed635fe1701470062495a6ffee1c608f3f1bc)
> >>>
> >>> A clang issue ?
> >>>
> >>>
> >>>> 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
> >>>>          # install powerpc cross compiling tool for clang build
> >>>>          # apt-get install binutils-powerpc-linux-gnu
> >>>>          # 
> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eacf4c0202654adfa94bbb17b5c5c77c0be14af8 
> >>>>
> >>>>          git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> >>>>          git fetch --no-tags linus master
> >>>>          git checkout eacf4c0202654adfa94bbb17b5c5c77c0be14af8
> >>>>          # save the attached .config to linux build tree
> >>>>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc
> >>>>
> >>>> If you fix the issue, kindly add following tag as appropriate
> >>>> Reported-by: kernel test robot <lkp@intel.com>
> >>>>
> >>>> All errors (new ones prefixed by >>):
> >>>>
> >>>>>> arch/powerpc/kernel/optprobes.c:34:1: error: unused function 'is_kprobe_ppc_optinsn_slot' 
> >>>>>> [-Werror,-Wunused-function]
> >>>>     DEFINE_INSN_CACHE_OPS(ppc_optinsn);
> >>>>     ^
> >>>>     include/linux/kprobes.h:306:20: note: expanded from macro 'DEFINE_INSN_CACHE_OPS'
> >>>>     static inline bool is_kprobe_##__name##_slot(unsigned long addr)        \
> >>>
> >>> That's a 'static inline', shouldn't generate an 'unused function' warning.
> >> This is a W=1 build, which means that "inline" does not silence unused function warnings with 
> >> clang because of commit 6863f5643dd7 ("kbuild: allow Clang to find unused static inline functions 
> >> for W=1 build").
> > 
> > Ok, I didn't know that.
> 
> After looking at it in more details, I don't really know what should be done to avoid that.

Ah, thanks for reporting!

> 
> This unused function is defined as part of DEFINE_INSN_CACHE_OPS(ppc_optinsn).
> 
> The code uses other items defined by macro DEFINE_INSN_CACHE_OPS, so it cannot be removed.
> 
> Solution could be to hide that in a .h, but is that worth it ?

The best solution is to remove ppc_optinsn, but that is defined in kernel/kprobes.c
just because page allocation is different.
I think the easiest fix is to add weak alloc_optinsn_page() and override it
in arch/powerpc/kernel/optprobe.c.

Thank you,

-- 
Masami Hiramatsu <mhiramat@kernel.org>

WARNING: multiple messages have this Message-ID (diff)
From: Masami Hiramatsu <mhiramat@kernel.org>
To: kbuild-all@lists.01.org
Subject: Re: arch/powerpc/kernel/optprobes.c:34:1: error: unused function 'is_kprobe_ppc_optinsn_slot'
Date: Wed, 12 May 2021 21:50:57 +0900	[thread overview]
Message-ID: <20210512215057.6875aeaf67fb31495ab29987@kernel.org> (raw)
In-Reply-To: <520bd3e7-ddee-bbee-0735-6aad29acb5bb@csgroup.eu>

[-- Attachment #1: Type: text/plain, Size: 3779 bytes --]

On Wed, 12 May 2021 11:52:30 +0200
Christophe Leroy <christophe.leroy@csgroup.eu> wrote:

> 
> 
> Le 12/05/2021 à 11:36, Christophe Leroy a écrit :
> > 
> > 
> > Le 11/05/2021 à 20:46, Nathan Chancellor a écrit :
> >> On 5/11/2021 9:47 AM, Christophe Leroy wrote:
> >>> Hi All,
> >>>
> >>> Le 11/05/2021 à 18:30, kernel test robot a écrit :
> >>>> Hi Christophe,
> >>>>
> >>>> First bad commit (maybe != root cause):
> >>>>
> >>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> >>>> head:   1140ab592e2ebf8153d2b322604031a8868ce7a5
> >>>> commit: eacf4c0202654adfa94bbb17b5c5c77c0be14af8 powerpc: Enable OPTPROBES on PPC32
> > 
> > Ok, the problem appears on PPC32 with that patch, but it must have been there on PPC64 since the 
> > implementation of optprobes with commit 51c9c0843993 ("powerpc/kprobes: Implement Optprobes")
> > 
> > 
> >>>> date:   3 weeks ago
> >>>> config: powerpc-randconfig-r033-20210511 (attached as .config)
> >>>> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
> >>>> a0fed635fe1701470062495a6ffee1c608f3f1bc)
> >>>
> >>> A clang issue ?
> >>>
> >>>
> >>>> 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
> >>>>          # install powerpc cross compiling tool for clang build
> >>>>          # apt-get install binutils-powerpc-linux-gnu
> >>>>          # 
> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eacf4c0202654adfa94bbb17b5c5c77c0be14af8 
> >>>>
> >>>>          git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> >>>>          git fetch --no-tags linus master
> >>>>          git checkout eacf4c0202654adfa94bbb17b5c5c77c0be14af8
> >>>>          # save the attached .config to linux build tree
> >>>>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc
> >>>>
> >>>> If you fix the issue, kindly add following tag as appropriate
> >>>> Reported-by: kernel test robot <lkp@intel.com>
> >>>>
> >>>> All errors (new ones prefixed by >>):
> >>>>
> >>>>>> arch/powerpc/kernel/optprobes.c:34:1: error: unused function 'is_kprobe_ppc_optinsn_slot' 
> >>>>>> [-Werror,-Wunused-function]
> >>>>     DEFINE_INSN_CACHE_OPS(ppc_optinsn);
> >>>>     ^
> >>>>     include/linux/kprobes.h:306:20: note: expanded from macro 'DEFINE_INSN_CACHE_OPS'
> >>>>     static inline bool is_kprobe_##__name##_slot(unsigned long addr)        \
> >>>
> >>> That's a 'static inline', shouldn't generate an 'unused function' warning.
> >> This is a W=1 build, which means that "inline" does not silence unused function warnings with 
> >> clang because of commit 6863f5643dd7 ("kbuild: allow Clang to find unused static inline functions 
> >> for W=1 build").
> > 
> > Ok, I didn't know that.
> 
> After looking at it in more details, I don't really know what should be done to avoid that.

Ah, thanks for reporting!

> 
> This unused function is defined as part of DEFINE_INSN_CACHE_OPS(ppc_optinsn).
> 
> The code uses other items defined by macro DEFINE_INSN_CACHE_OPS, so it cannot be removed.
> 
> Solution could be to hide that in a .h, but is that worth it ?

The best solution is to remove ppc_optinsn, but that is defined in kernel/kprobes.c
just because page allocation is different.
I think the easiest fix is to add weak alloc_optinsn_page() and override it
in arch/powerpc/kernel/optprobe.c.

Thank you,

-- 
Masami Hiramatsu <mhiramat@kernel.org>

  reply	other threads:[~2021-05-12 12:51 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-11 16:30 arch/powerpc/kernel/optprobes.c:34:1: error: unused function 'is_kprobe_ppc_optinsn_slot' kernel test robot
2021-05-11 16:30 ` kernel test robot
2021-05-11 16:47 ` Christophe Leroy
2021-05-11 16:47   ` Christophe Leroy
2021-05-11 18:46   ` Nathan Chancellor
2021-05-11 18:46     ` Nathan Chancellor
2021-05-12  9:36     ` Christophe Leroy
2021-05-12  9:36       ` Christophe Leroy
2021-05-12  9:52       ` Christophe Leroy
2021-05-12  9:52         ` Christophe Leroy
2021-05-12 12:50         ` Masami Hiramatsu [this message]
2021-05-12 12:50           ` Masami Hiramatsu
2021-05-12 15:06           ` Masami Hiramatsu
2021-05-12 15:06             ` Masami Hiramatsu
2021-05-12 15:12             ` Christophe Leroy
2021-05-12 15:12               ` Christophe Leroy
2021-05-12 23:42               ` Masami Hiramatsu
2021-05-12 23:42                 ` Masami Hiramatsu
  -- strict thread matches above, loose matches on Subject: below --
2021-04-29 15:33 kernel test robot
2021-04-29 15:33 ` kernel test robot
2021-04-20  7:43 kernel test robot
2021-04-20  7:43 ` kernel test robot
2021-03-23 14:06 kernel test robot
2021-03-23 14:06 ` kernel test robot
2021-03-19 17:00 kernel test robot
2021-03-19 17:00 ` kernel test robot
2021-03-04 20:34 kernel test robot

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=20210512215057.6875aeaf67fb31495ab29987@kernel.org \
    --to=mhiramat@kernel.org \
    --cc=christophe.leroy@csgroup.eu \
    --cc=clang-built-linux@googlegroups.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=masahiroy@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.