All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: kernel test robot <lkp@intel.com>
Cc: Marc Zyngier <maz@kernel.org>,
	kbuild-all@lists.01.org, clang-built-linux@googlegroups.com,
	linux-kernel@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
	Alexandru Elisei <alexandru.elisei@arm.com>
Subject: Re: arch/arm64/kvm/perf.c:58:36: error: implicit declaration of function 'perf_num_counters'
Date: Tue, 13 Apr 2021 13:00:57 -0700	[thread overview]
Message-ID: <20210413200057.ankb4e26ytgal7ev@archlinux-ax161> (raw)
In-Reply-To: <202103262006.nHFq086E-lkp@intel.com>

On Fri, Mar 26, 2021 at 08:27:13PM +0800, kernel test robot wrote:
> Hi Marc,
> 
> FYI, the error/warning still remains.
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   db24726bfefa68c606947a86132591568a06bfb4
> commit: 6b5b368fccd7109b052e45af8ba1464c8d140a49 KVM: arm64: Turn kvm_arm_support_pmu_v3() into a static key
> date:   3 weeks ago
> config: arm64-randconfig-r005-20210326 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f490a5969bd52c8a48586f134ff8f02ccbb295b3)
> 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 arm64 cross compiling tool for clang build
>         # apt-get install binutils-aarch64-linux-gnu
>         # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6b5b368fccd7109b052e45af8ba1464c8d140a49
>         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>         git fetch --no-tags linus master
>         git checkout 6b5b368fccd7109b052e45af8ba1464c8d140a49
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 
> 
> 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/arm64/kvm/perf.c:58:36: error: implicit declaration of function 'perf_num_counters' [-Werror,-Wimplicit-function-declaration]
>            if (IS_ENABLED(CONFIG_ARM_PMU) && perf_num_counters() > 0)
>                                              ^
>    1 error generated.
> 
> 
> vim +/perf_num_counters +58 arch/arm64/kvm/perf.c
> 
>     50	
>     51	int kvm_perf_init(void)
>     52	{
>     53		/*
>     54		 * Check if HW_PERF_EVENTS are supported by checking the number of
>     55		 * hardware performance counters. This could ensure the presence of
>     56		 * a physical PMU and CONFIG_PERF_EVENT is selected.
>     57		 */
>   > 58		if (IS_ENABLED(CONFIG_ARM_PMU) && perf_num_counters() > 0)
>     59			static_branch_enable(&kvm_arm_pmu_available);
>     60	
>     61		return perf_register_guest_info_callbacks(&kvm_guest_cbs);
>     62	}
>     63	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

I just ran into this again. It is not a clang specific issue, it
reproduces quite easily with arm64 defconfig minus CONFIG_PERF_EVENTS
and gcc 10.3.0:

arch/arm64/kvm/perf.c: In function 'kvm_perf_init':
arch/arm64/kvm/perf.c:58:36: error: implicit declaration of function
'perf_num_counters'; did you mean 'dec_mm_counter'?
[-Werror=implicit-function-declaration]
   58 |  if (IS_ENABLED(CONFIG_ARM_PMU) && perf_num_counters() > 0)
      |                                    ^~~~~~~~~~~~~~~~~
      |                                    dec_mm_counter
cc1: some warnings being treated as errors

I am not sure what the cleanest solution would be for providing a static
inline version of perf_num_counters() would be, as only arm64 actually
uses it (sh and s390 define it but it does not appear to be used) but it
is only available through CONFIG_ARM_PMU instead of just
CONFIG_PERF_EVENTS like the other two architectures mentioned above.

Cheers,
Nathan

WARNING: multiple messages have this Message-ID (diff)
From: Nathan Chancellor <nathan@kernel.org>
To: kbuild-all@lists.01.org
Subject: Re: arch/arm64/kvm/perf.c:58:36: error: implicit declaration of function 'perf_num_counters'
Date: Tue, 13 Apr 2021 13:00:57 -0700	[thread overview]
Message-ID: <20210413200057.ankb4e26ytgal7ev@archlinux-ax161> (raw)
In-Reply-To: <202103262006.nHFq086E-lkp@intel.com>

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

On Fri, Mar 26, 2021 at 08:27:13PM +0800, kernel test robot wrote:
> Hi Marc,
> 
> FYI, the error/warning still remains.
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   db24726bfefa68c606947a86132591568a06bfb4
> commit: 6b5b368fccd7109b052e45af8ba1464c8d140a49 KVM: arm64: Turn kvm_arm_support_pmu_v3() into a static key
> date:   3 weeks ago
> config: arm64-randconfig-r005-20210326 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f490a5969bd52c8a48586f134ff8f02ccbb295b3)
> 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 arm64 cross compiling tool for clang build
>         # apt-get install binutils-aarch64-linux-gnu
>         # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6b5b368fccd7109b052e45af8ba1464c8d140a49
>         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>         git fetch --no-tags linus master
>         git checkout 6b5b368fccd7109b052e45af8ba1464c8d140a49
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 
> 
> 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/arm64/kvm/perf.c:58:36: error: implicit declaration of function 'perf_num_counters' [-Werror,-Wimplicit-function-declaration]
>            if (IS_ENABLED(CONFIG_ARM_PMU) && perf_num_counters() > 0)
>                                              ^
>    1 error generated.
> 
> 
> vim +/perf_num_counters +58 arch/arm64/kvm/perf.c
> 
>     50	
>     51	int kvm_perf_init(void)
>     52	{
>     53		/*
>     54		 * Check if HW_PERF_EVENTS are supported by checking the number of
>     55		 * hardware performance counters. This could ensure the presence of
>     56		 * a physical PMU and CONFIG_PERF_EVENT is selected.
>     57		 */
>   > 58		if (IS_ENABLED(CONFIG_ARM_PMU) && perf_num_counters() > 0)
>     59			static_branch_enable(&kvm_arm_pmu_available);
>     60	
>     61		return perf_register_guest_info_callbacks(&kvm_guest_cbs);
>     62	}
>     63	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

I just ran into this again. It is not a clang specific issue, it
reproduces quite easily with arm64 defconfig minus CONFIG_PERF_EVENTS
and gcc 10.3.0:

arch/arm64/kvm/perf.c: In function 'kvm_perf_init':
arch/arm64/kvm/perf.c:58:36: error: implicit declaration of function
'perf_num_counters'; did you mean 'dec_mm_counter'?
[-Werror=implicit-function-declaration]
   58 |  if (IS_ENABLED(CONFIG_ARM_PMU) && perf_num_counters() > 0)
      |                                    ^~~~~~~~~~~~~~~~~
      |                                    dec_mm_counter
cc1: some warnings being treated as errors

I am not sure what the cleanest solution would be for providing a static
inline version of perf_num_counters() would be, as only arm64 actually
uses it (sh and s390 define it but it does not appear to be used) but it
is only available through CONFIG_ARM_PMU instead of just
CONFIG_PERF_EVENTS like the other two architectures mentioned above.

Cheers,
Nathan

  reply	other threads:[~2021-04-13 20:01 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-26 12:27 arch/arm64/kvm/perf.c:58:36: error: implicit declaration of function 'perf_num_counters' kernel test robot
2021-03-26 12:27 ` kernel test robot
2021-04-13 20:00 ` Nathan Chancellor [this message]
2021-04-13 20:00   ` Nathan Chancellor
2021-04-14 10:12   ` Marc Zyngier
2021-04-14 10:12     ` Marc Zyngier
2021-04-14 10:16   ` Alexandru Elisei
2021-04-14 10:16     ` Alexandru Elisei
  -- strict thread matches above, loose matches on Subject: below --
2021-03-26  3:54 kernel test robot
2021-03-26  3:54 ` 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=20210413200057.ankb4e26ytgal7ev@archlinux-ax161 \
    --to=nathan@kernel.org \
    --cc=alexandru.elisei@arm.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=maz@kernel.org \
    --cc=pbonzini@redhat.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.