KVM Archive on lore.kernel.org
 help / color / Atom feed
* [kvm:queue 149/154] arch/x86/kvm/mmu/tdp_mmu.c:141:5: error: implicit declaration of function 'lockdep_is_help'; did you mean 'lockdep_is_held'?
@ 2021-04-17 15:19 kernel test robot
  2021-04-19 16:30 ` Ben Gardon
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2021-04-17 15:19 UTC (permalink / raw)
  To: Ben Gardon
  Cc: kbuild-all, kvm, Robert Hu, Farrah Chen, Danmei Wei, Paolo Bonzini


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

tree:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
head:   3afb84581509b8d28979d15b5d727366efb3c8e5
commit: 078d47ee71d6a53657b5917ce1478f10bc173fa5 [149/154] KVM: x86/mmu: Protect the tdp_mmu_roots list with RCU
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=078d47ee71d6a53657b5917ce1478f10bc173fa5
        git remote add kvm https://git.kernel.org/pub/scm/virt/kvm/kvm.git
        git fetch --no-tags kvm queue
        git checkout 078d47ee71d6a53657b5917ce1478f10bc173fa5
        # save the attached .config to linux build tree
        make W=1 W=1 ARCH=x86_64 

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 >>):

   In file included from include/linux/rculist.h:11,
                    from include/linux/pid.h:5,
                    from include/linux/sched.h:14,
                    from include/linux/kvm_host.h:12,
                    from arch/x86/kvm/mmu.h:5,
                    from arch/x86/kvm/mmu/tdp_mmu.c:3:
   arch/x86/kvm/mmu/tdp_mmu.c: In function 'kvm_tdp_mmu_get_vcpu_root_hpa':
>> arch/x86/kvm/mmu/tdp_mmu.c:141:5: error: implicit declaration of function 'lockdep_is_help'; did you mean 'lockdep_is_held'? [-Werror=implicit-function-declaration]
     141 |     lockdep_is_help(&kvm->arch.tdp_mmu_pages_lock)) \
         |     ^~~~~~~~~~~~~~~
   include/linux/rcupdate.h:318:52: note: in definition of macro 'RCU_LOCKDEP_WARN'
     318 |   if (debug_lockdep_rcu_enabled() && !__warned && (c)) { \
         |                                                    ^
   include/linux/rculist.h:391:7: note: in expansion of macro '__list_check_rcu'
     391 |  for (__list_check_rcu(dummy, ## cond, 0),   \
         |       ^~~~~~~~~~~~~~~~
   arch/x86/kvm/mmu/tdp_mmu.c:139:2: note: in expansion of macro 'list_for_each_entry_rcu'
     139 |  list_for_each_entry_rcu(_root, &_kvm->arch.tdp_mmu_roots, link,  \
         |  ^~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kvm/mmu/tdp_mmu.c:188:2: note: in expansion of macro 'for_each_tdp_mmu_root'
     188 |  for_each_tdp_mmu_root(kvm, root, kvm_mmu_role_as_id(role)) {
         |  ^~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +141 arch/x86/kvm/mmu/tdp_mmu.c

   124	
   125	/*
   126	 * Note: this iterator gets and puts references to the roots it iterates over.
   127	 * This makes it safe to release the MMU lock and yield within the loop, but
   128	 * if exiting the loop early, the caller must drop the reference to the most
   129	 * recent root. (Unless keeping a live reference is desirable.)
   130	 */
   131	#define for_each_tdp_mmu_root_yield_safe(_kvm, _root, _as_id)	\
   132		for (_root = tdp_mmu_next_root(_kvm, NULL);		\
   133		     _root;						\
   134		     _root = tdp_mmu_next_root(_kvm, _root))		\
   135			if (kvm_mmu_page_as_id(_root) != _as_id) {	\
   136			} else
   137	
   138	#define for_each_tdp_mmu_root(_kvm, _root, _as_id)				\
   139		list_for_each_entry_rcu(_root, &_kvm->arch.tdp_mmu_roots, link,		\
   140					lockdep_is_held_type(&kvm->mmu_lock, 0) ||	\
 > 141					lockdep_is_help(&kvm->arch.tdp_mmu_pages_lock))	\
   142			if (kvm_mmu_page_as_id(_root) != _as_id) {		\
   143			} else
   144	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 65033 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [kvm:queue 149/154] arch/x86/kvm/mmu/tdp_mmu.c:141:5: error: implicit declaration of function 'lockdep_is_help'; did you mean 'lockdep_is_held'?
  2021-04-17 15:19 [kvm:queue 149/154] arch/x86/kvm/mmu/tdp_mmu.c:141:5: error: implicit declaration of function 'lockdep_is_help'; did you mean 'lockdep_is_held'? kernel test robot
@ 2021-04-19 16:30 ` Ben Gardon
  0 siblings, 0 replies; 2+ messages in thread
From: Ben Gardon @ 2021-04-19 16:30 UTC (permalink / raw)
  To: kernel test robot
  Cc: kbuild-all, kvm, Robert Hu, Farrah Chen, Danmei Wei, Paolo Bonzini

Well that's embarrassing, I can't believe I didn't catch that in my
testing. I'm sure I built the kernel with lockdep enabled several
times.
Ah well, I can send a fix out for this and the other issue the test bot found.

On Sat, Apr 17, 2021 at 8:20 AM kernel test robot <lkp@intel.com> wrote:
>
> tree:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
> head:   3afb84581509b8d28979d15b5d727366efb3c8e5
> commit: 078d47ee71d6a53657b5917ce1478f10bc173fa5 [149/154] KVM: x86/mmu: Protect the tdp_mmu_roots list with RCU
> config: x86_64-allyesconfig (attached as .config)
> compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
> reproduce (this is a W=1 build):
>         # https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=078d47ee71d6a53657b5917ce1478f10bc173fa5
>         git remote add kvm https://git.kernel.org/pub/scm/virt/kvm/kvm.git
>         git fetch --no-tags kvm queue
>         git checkout 078d47ee71d6a53657b5917ce1478f10bc173fa5
>         # save the attached .config to linux build tree
>         make W=1 W=1 ARCH=x86_64
>
> 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 >>):
>
>    In file included from include/linux/rculist.h:11,
>                     from include/linux/pid.h:5,
>                     from include/linux/sched.h:14,
>                     from include/linux/kvm_host.h:12,
>                     from arch/x86/kvm/mmu.h:5,
>                     from arch/x86/kvm/mmu/tdp_mmu.c:3:
>    arch/x86/kvm/mmu/tdp_mmu.c: In function 'kvm_tdp_mmu_get_vcpu_root_hpa':
> >> arch/x86/kvm/mmu/tdp_mmu.c:141:5: error: implicit declaration of function 'lockdep_is_help'; did you mean 'lockdep_is_held'? [-Werror=implicit-function-declaration]
>      141 |     lockdep_is_help(&kvm->arch.tdp_mmu_pages_lock)) \
>          |     ^~~~~~~~~~~~~~~
>    include/linux/rcupdate.h:318:52: note: in definition of macro 'RCU_LOCKDEP_WARN'
>      318 |   if (debug_lockdep_rcu_enabled() && !__warned && (c)) { \
>          |                                                    ^
>    include/linux/rculist.h:391:7: note: in expansion of macro '__list_check_rcu'
>      391 |  for (__list_check_rcu(dummy, ## cond, 0),   \
>          |       ^~~~~~~~~~~~~~~~
>    arch/x86/kvm/mmu/tdp_mmu.c:139:2: note: in expansion of macro 'list_for_each_entry_rcu'
>      139 |  list_for_each_entry_rcu(_root, &_kvm->arch.tdp_mmu_roots, link,  \
>          |  ^~~~~~~~~~~~~~~~~~~~~~~
>    arch/x86/kvm/mmu/tdp_mmu.c:188:2: note: in expansion of macro 'for_each_tdp_mmu_root'
>      188 |  for_each_tdp_mmu_root(kvm, root, kvm_mmu_role_as_id(role)) {
>          |  ^~~~~~~~~~~~~~~~~~~~~
>    cc1: some warnings being treated as errors
>
>
> vim +141 arch/x86/kvm/mmu/tdp_mmu.c
>
>    124
>    125  /*
>    126   * Note: this iterator gets and puts references to the roots it iterates over.
>    127   * This makes it safe to release the MMU lock and yield within the loop, but
>    128   * if exiting the loop early, the caller must drop the reference to the most
>    129   * recent root. (Unless keeping a live reference is desirable.)
>    130   */
>    131  #define for_each_tdp_mmu_root_yield_safe(_kvm, _root, _as_id)   \
>    132          for (_root = tdp_mmu_next_root(_kvm, NULL);             \
>    133               _root;                                             \
>    134               _root = tdp_mmu_next_root(_kvm, _root))            \
>    135                  if (kvm_mmu_page_as_id(_root) != _as_id) {      \
>    136                  } else
>    137
>    138  #define for_each_tdp_mmu_root(_kvm, _root, _as_id)                              \
>    139          list_for_each_entry_rcu(_root, &_kvm->arch.tdp_mmu_roots, link,         \
>    140                                  lockdep_is_held_type(&kvm->mmu_lock, 0) ||      \
>  > 141                                  lockdep_is_help(&kvm->arch.tdp_mmu_pages_lock)) \
>    142                  if (kvm_mmu_page_as_id(_root) != _as_id) {              \
>    143                  } else
>    144
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, back to index

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-17 15:19 [kvm:queue 149/154] arch/x86/kvm/mmu/tdp_mmu.c:141:5: error: implicit declaration of function 'lockdep_is_help'; did you mean 'lockdep_is_held'? kernel test robot
2021-04-19 16:30 ` Ben Gardon

KVM Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/kvm/0 kvm/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 kvm kvm/ https://lore.kernel.org/kvm \
		kvm@vger.kernel.org
	public-inbox-index kvm

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.kvm


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git