Re: [PATCH 2/2] KVM: x86/mmu: Recover NX Huge pages belonging to TDP MMU under MMU read lock
From: kernel test robot
Date: Wed Aug 14 2024 - 05:33:54 EST
Hi Vipin,
kernel test robot noticed the following build errors:
[auto build test ERROR on 332d2c1d713e232e163386c35a3ba0c1b90df83f]
url: https://github.com/intel-lab-lkp/linux/commits/Vipin-Sharma/KVM-x86-mmu-Split-NX-hugepage-recovery-flow-into-TDP-and-non-TDP-flow/20240814-091542
base: 332d2c1d713e232e163386c35a3ba0c1b90df83f
patch link: https://lore.kernel.org/r/20240812171341.1763297-3-vipinsh%40google.com
patch subject: [PATCH 2/2] KVM: x86/mmu: Recover NX Huge pages belonging to TDP MMU under MMU read lock
config: i386-buildonly-randconfig-005-20240814 (https://download.01.org/0day-ci/archive/20240814/202408141753.ZY1CSmGo-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240814/202408141753.ZY1CSmGo-lkp@xxxxxxxxx/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408141753.ZY1CSmGo-lkp@xxxxxxxxx/
All errors (new ones prefixed by >>):
arch/x86/kvm/mmu/mmu.c: In function 'kvm_mmu_possible_nx_huge_page':
>> arch/x86/kvm/mmu/mmu.c:7324:29: error: 'struct kvm_arch' has no member named 'tdp_mmu_pages_lock'
7324 | spin_lock(&kvm->arch.tdp_mmu_pages_lock);
| ^
arch/x86/kvm/mmu/mmu.c:7335:47: error: 'struct kvm_arch' has no member named 'tdp_mmu_pages_lock'
7335 | spin_unlock(&kvm->arch.tdp_mmu_pages_lock);
| ^
arch/x86/kvm/mmu/mmu.c:7340:31: error: 'struct kvm_arch' has no member named 'tdp_mmu_pages_lock'
7340 | spin_unlock(&kvm->arch.tdp_mmu_pages_lock);
| ^
vim +7324 arch/x86/kvm/mmu/mmu.c
7313
7314 /*
7315 * Get the first shadow mmu page of desired type from the NX huge pages list.
7316 * Return NULL if list doesn't have the needed page with in the first max pages.
7317 */
7318 struct kvm_mmu_page *kvm_mmu_possible_nx_huge_page(struct kvm *kvm, bool tdp_mmu,
7319 ulong max)
7320 {
7321 struct kvm_mmu_page *sp = NULL;
7322 ulong i = 0;
7323
> 7324 spin_lock(&kvm->arch.tdp_mmu_pages_lock);
7325 /*
7326 * We use a separate list instead of just using active_mmu_pages because
7327 * the number of shadow pages that be replaced with an NX huge page is
7328 * expected to be relatively small compared to the total number of shadow
7329 * pages. And because the TDP MMU doesn't use active_mmu_pages.
7330 */
7331 list_for_each_entry(sp, &kvm->arch.possible_nx_huge_pages, possible_nx_huge_page_link) {
7332 if (i++ >= max)
7333 break;
7334 if (is_tdp_mmu_page(sp) == tdp_mmu) {
7335 spin_unlock(&kvm->arch.tdp_mmu_pages_lock);
7336 return sp;
7337 }
7338 }
7339
7340 spin_unlock(&kvm->arch.tdp_mmu_pages_lock);
7341 return NULL;
7342 }
7343
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki