From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0394322854501050709==" MIME-Version: 1.0 From: kernel test robot Subject: arch/x86/kvm/mmu/tdp_mmu.c:291:9: sparse: sparse: context imbalance in 'tdp_mmu_link_page' - different lock contexts for basic block Date: Sun, 28 Feb 2021 06:46:54 +0800 Message-ID: <202102280647.mObnvOpp-lkp@intel.com> List-Id: To: kbuild@lists.01.org --===============0394322854501050709== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable CC: kbuild-all(a)lists.01.org CC: linux-kernel(a)vger.kernel.org TO: Ben Gardon CC: Paolo Bonzini CC: Peter Feiner tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = master head: 5695e51619745d4fe3ec2506a2f0cd982c5e27a4 commit: 9a77daacc87dee9fd63e31243f21894132ed8407 KVM: x86/mmu: Use atomic o= ps to set SPTEs in TDP MMU map date: 3 weeks ago :::::: branch date: 6 hours ago :::::: commit date: 3 weeks ago config: x86_64-randconfig-s022-20210228 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-241-geaceeafa-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.gi= t/commit/?id=3D9a77daacc87dee9fd63e31243f21894132ed8407 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/gi= t/torvalds/linux.git git fetch --no-tags linus master git checkout 9a77daacc87dee9fd63e31243f21894132ed8407 # save the attached .config to linux build tree make W=3D1 C=3D1 CF=3D'-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH= =3Dx86_64 = If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot "sparse warnings: (new ones prefixed by >>)" arch/x86/kvm/mmu/tdp_mmu.c:455:49: sparse: sparse: incorrect type in arg= ument 2 (different address spaces) @@ expected unsigned long long [user= type] *pt @@ got unsigned long long [noderef] [usertype] __rcu * @@ arch/x86/kvm/mmu/tdp_mmu.c:455:49: sparse: expected unsigned long lo= ng [usertype] *pt arch/x86/kvm/mmu/tdp_mmu.c:455:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu * >> arch/x86/kvm/mmu/tdp_mmu.c:291:9: sparse: sparse: context imbalance in '= tdp_mmu_link_page' - different lock contexts for basic block >> arch/x86/kvm/mmu/tdp_mmu.c:316:9: sparse: sparse: context imbalance in '= tdp_mmu_unlink_page' - different lock contexts for basic block arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: sparse: incorrect type in arg= ument 2 (different address spaces) @@ expected unsigned long long [user= type] *root_pt @@ got unsigned long long [noderef] [usertype] __rcu * @@ arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: expected unsigned long lo= ng [usertype] *root_pt arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: got unsigned long long [n= oderef] [usertype] __rcu * arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt >> arch/x86/kvm/mmu/tdp_mmu.c:483:40: sparse: sparse: incorrect type in ini= tializer (different address spaces) @@ expected unsigned long long [use= rtype] *root_pt @@ got unsigned long long [noderef] [usertype] __rcu * = @@ arch/x86/kvm/mmu/tdp_mmu.c:483:40: sparse: expected unsigned long lo= ng [usertype] *root_pt arch/x86/kvm/mmu/tdp_mmu.c:483:40: sparse: got unsigned long long [n= oderef] [usertype] __rcu * >> arch/x86/kvm/mmu/tdp_mmu.c:483:40: sparse: sparse: incorrect type in ini= tializer (different address spaces) @@ expected unsigned long long [use= rtype] *root_pt @@ got unsigned long long [noderef] [usertype] __rcu * = @@ arch/x86/kvm/mmu/tdp_mmu.c:483:40: sparse: expected unsigned long lo= ng [usertype] *root_pt arch/x86/kvm/mmu/tdp_mmu.c:483:40: sparse: got unsigned long long [n= oderef] [usertype] __rcu * >> arch/x86/kvm/mmu/tdp_mmu.c:483:40: sparse: sparse: incorrect type in ini= tializer (different address spaces) @@ expected unsigned long long [use= rtype] *root_pt @@ got unsigned long long [noderef] [usertype] __rcu * = @@ arch/x86/kvm/mmu/tdp_mmu.c:483:40: sparse: expected unsigned long lo= ng [usertype] *root_pt arch/x86/kvm/mmu/tdp_mmu.c:483:40: sparse: got unsigned long long [n= oderef] [usertype] __rcu * arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: sparse: incorrect type in arg= ument 2 (different address spaces) @@ expected unsigned long long [user= type] *root_pt @@ got unsigned long long [noderef] [usertype] __rcu * @@ arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: expected unsigned long lo= ng [usertype] *root_pt arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: got unsigned long long [n= oderef] [usertype] __rcu * arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: sparse: incorrect type in arg= ument 2 (different address spaces) @@ expected unsigned long long [user= type] *root_pt @@ got unsigned long long [noderef] [usertype] __rcu * @@ arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: expected unsigned long lo= ng [usertype] *root_pt arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: got unsigned long long [n= oderef] [usertype] __rcu * arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: sparse: incorrect type in arg= ument 2 (different address spaces) @@ expected unsigned long long [user= type] *root_pt @@ got unsigned long long [noderef] [usertype] __rcu * @@ arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: expected unsigned long lo= ng [usertype] *root_pt arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: got unsigned long long [n= oderef] [usertype] __rcu * arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: sparse: incorrect type in arg= ument 2 (different address spaces) @@ expected unsigned long long [user= type] *root_pt @@ got unsigned long long [noderef] [usertype] __rcu * @@ arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: expected unsigned long lo= ng [usertype] *root_pt arch/x86/kvm/mmu/tdp_mmu.c:606:51: sparse: got unsigned long long [n= oderef] [usertype] __rcu * arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: sparse: incorrect type in arg= ument 1 (different address spaces) @@ expected unsigned long long [user= type] *sptep @@ got unsigned long long [noderef] [usertype] __rcu *[use= rtype] root_pt @@ arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: expected unsigned long lo= ng [usertype] *sptep arch/x86/kvm/mmu/tdp_mmu.c:521:49: sparse: got unsigned long long [n= oderef] [usertype] __rcu *[usertype] root_pt vim +/tdp_mmu_link_page +291 arch/x86/kvm/mmu/tdp_mmu.c a6a0b05da9f37f Ben Gardon 2020-10-14 267 = a9442f594147f9 Ben Gardon 2021-02-02 268 /** a9442f594147f9 Ben Gardon 2021-02-02 269 * tdp_mmu_link_page - = Add a new page to the list of pages used by the TDP MMU a9442f594147f9 Ben Gardon 2021-02-02 270 * a9442f594147f9 Ben Gardon 2021-02-02 271 * @kvm: kvm instance a9442f594147f9 Ben Gardon 2021-02-02 272 * @sp: the new page 9a77daacc87dee Ben Gardon 2021-02-02 273 * @shared: This operat= ion may not be running under the exclusive use of 9a77daacc87dee Ben Gardon 2021-02-02 274 * the MMU lock and= the operation must synchronize with other 9a77daacc87dee Ben Gardon 2021-02-02 275 * threads that mig= ht be adding or removing pages. a9442f594147f9 Ben Gardon 2021-02-02 276 * @account_nx: This pa= ge replaces a NX large page and should be marked for a9442f594147f9 Ben Gardon 2021-02-02 277 * eventual reclaim. a9442f594147f9 Ben Gardon 2021-02-02 278 */ a9442f594147f9 Ben Gardon 2021-02-02 279 static void tdp_mmu_lin= k_page(struct kvm *kvm, struct kvm_mmu_page *sp, 9a77daacc87dee Ben Gardon 2021-02-02 280 bool shared, b= ool account_nx) a9442f594147f9 Ben Gardon 2021-02-02 281 { 9a77daacc87dee Ben Gardon 2021-02-02 282 if (shared) 9a77daacc87dee Ben Gardon 2021-02-02 283 spin_lock(&kvm->arch.= tdp_mmu_pages_lock); 9a77daacc87dee Ben Gardon 2021-02-02 284 else a9442f594147f9 Ben Gardon 2021-02-02 285 lockdep_assert_held_w= rite(&kvm->mmu_lock); a9442f594147f9 Ben Gardon 2021-02-02 286 = a9442f594147f9 Ben Gardon 2021-02-02 287 list_add(&sp->link, &k= vm->arch.tdp_mmu_pages); a9442f594147f9 Ben Gardon 2021-02-02 288 if (account_nx) a9442f594147f9 Ben Gardon 2021-02-02 289 account_huge_nx_page(= kvm, sp); 9a77daacc87dee Ben Gardon 2021-02-02 290 = 9a77daacc87dee Ben Gardon 2021-02-02 @291 if (shared) 9a77daacc87dee Ben Gardon 2021-02-02 292 spin_unlock(&kvm->arc= h.tdp_mmu_pages_lock); a9442f594147f9 Ben Gardon 2021-02-02 293 } a9442f594147f9 Ben Gardon 2021-02-02 294 = a9442f594147f9 Ben Gardon 2021-02-02 295 /** a9442f594147f9 Ben Gardon 2021-02-02 296 * tdp_mmu_unlink_page = - Remove page from the list of pages used by the TDP MMU a9442f594147f9 Ben Gardon 2021-02-02 297 * a9442f594147f9 Ben Gardon 2021-02-02 298 * @kvm: kvm instance a9442f594147f9 Ben Gardon 2021-02-02 299 * @sp: the page to be = removed 9a77daacc87dee Ben Gardon 2021-02-02 300 * @shared: This operat= ion may not be running under the exclusive use of 9a77daacc87dee Ben Gardon 2021-02-02 301 * the MMU lock and= the operation must synchronize with other 9a77daacc87dee Ben Gardon 2021-02-02 302 * threads that mig= ht be adding or removing pages. a9442f594147f9 Ben Gardon 2021-02-02 303 */ 9a77daacc87dee Ben Gardon 2021-02-02 304 static void tdp_mmu_unl= ink_page(struct kvm *kvm, struct kvm_mmu_page *sp, 9a77daacc87dee Ben Gardon 2021-02-02 305 bool shared) a9442f594147f9 Ben Gardon 2021-02-02 306 { 9a77daacc87dee Ben Gardon 2021-02-02 307 if (shared) 9a77daacc87dee Ben Gardon 2021-02-02 308 spin_lock(&kvm->arch.= tdp_mmu_pages_lock); 9a77daacc87dee Ben Gardon 2021-02-02 309 else a9442f594147f9 Ben Gardon 2021-02-02 310 lockdep_assert_held_w= rite(&kvm->mmu_lock); a9442f594147f9 Ben Gardon 2021-02-02 311 = a9442f594147f9 Ben Gardon 2021-02-02 312 list_del(&sp->link); a9442f594147f9 Ben Gardon 2021-02-02 313 if (sp->lpage_disallow= ed) a9442f594147f9 Ben Gardon 2021-02-02 314 unaccount_huge_nx_pag= e(kvm, sp); 9a77daacc87dee Ben Gardon 2021-02-02 315 = 9a77daacc87dee Ben Gardon 2021-02-02 @316 if (shared) 9a77daacc87dee Ben Gardon 2021-02-02 317 spin_unlock(&kvm->arc= h.tdp_mmu_pages_lock); a9442f594147f9 Ben Gardon 2021-02-02 318 } a9442f594147f9 Ben Gardon 2021-02-02 319 = a066e61f13cf4b Ben Gardon 2021-02-02 320 /** a066e61f13cf4b Ben Gardon 2021-02-02 321 * handle_removed_tdp_m= mu_page - handle a pt removed from the TDP structure a066e61f13cf4b Ben Gardon 2021-02-02 322 * a066e61f13cf4b Ben Gardon 2021-02-02 323 * @kvm: kvm instance a066e61f13cf4b Ben Gardon 2021-02-02 324 * @pt: the page remove= d from the paging structure 9a77daacc87dee Ben Gardon 2021-02-02 325 * @shared: This operat= ion may not be running under the exclusive use 9a77daacc87dee Ben Gardon 2021-02-02 326 * of the MMU lock = and the operation must synchronize with other 9a77daacc87dee Ben Gardon 2021-02-02 327 * threads that mig= ht be modifying SPTEs. a066e61f13cf4b Ben Gardon 2021-02-02 328 * a066e61f13cf4b Ben Gardon 2021-02-02 329 * Given a page table t= hat has been removed from the TDP paging structure, a066e61f13cf4b Ben Gardon 2021-02-02 330 * iterates through the= page table to clear SPTEs and free child page tables. a066e61f13cf4b Ben Gardon 2021-02-02 331 */ 9a77daacc87dee Ben Gardon 2021-02-02 332 static void handle_remo= ved_tdp_mmu_page(struct kvm *kvm, u64 *pt, 9a77daacc87dee Ben Gardon 2021-02-02 333 bool shared) a066e61f13cf4b Ben Gardon 2021-02-02 334 { a066e61f13cf4b Ben Gardon 2021-02-02 335 struct kvm_mmu_page *s= p =3D sptep_to_sp(pt); a066e61f13cf4b Ben Gardon 2021-02-02 336 int level =3D sp->role= .level; a066e61f13cf4b Ben Gardon 2021-02-02 337 gfn_t gfn =3D sp->gfn; a066e61f13cf4b Ben Gardon 2021-02-02 338 u64 old_child_spte; 9a77daacc87dee Ben Gardon 2021-02-02 339 u64 *sptep; a066e61f13cf4b Ben Gardon 2021-02-02 340 int i; a066e61f13cf4b Ben Gardon 2021-02-02 341 = a066e61f13cf4b Ben Gardon 2021-02-02 342 trace_kvm_mmu_prepare_= zap_page(sp); a066e61f13cf4b Ben Gardon 2021-02-02 343 = 9a77daacc87dee Ben Gardon 2021-02-02 344 tdp_mmu_unlink_page(kv= m, sp, shared); a066e61f13cf4b Ben Gardon 2021-02-02 345 = a066e61f13cf4b Ben Gardon 2021-02-02 346 for (i =3D 0; i < PT64= _ENT_PER_PAGE; i++) { 9a77daacc87dee Ben Gardon 2021-02-02 347 sptep =3D pt + i; 9a77daacc87dee Ben Gardon 2021-02-02 348 = 9a77daacc87dee Ben Gardon 2021-02-02 349 if (shared) { 9a77daacc87dee Ben Gardon 2021-02-02 350 old_child_spte =3D x= chg(sptep, 0); 9a77daacc87dee Ben Gardon 2021-02-02 351 } else { 9a77daacc87dee Ben Gardon 2021-02-02 352 old_child_spte =3D R= EAD_ONCE(*sptep); 9a77daacc87dee Ben Gardon 2021-02-02 353 WRITE_ONCE(*sptep, 0= ); 9a77daacc87dee Ben Gardon 2021-02-02 354 } a066e61f13cf4b Ben Gardon 2021-02-02 355 handle_changed_spte(k= vm, kvm_mmu_page_as_id(sp), a066e61f13cf4b Ben Gardon 2021-02-02 356 gfn + (i * KVM_PAGES= _PER_HPAGE(level - 1)), 9a77daacc87dee Ben Gardon 2021-02-02 357 old_child_spte, 0, l= evel - 1, shared); a066e61f13cf4b Ben Gardon 2021-02-02 358 } a066e61f13cf4b Ben Gardon 2021-02-02 359 = a066e61f13cf4b Ben Gardon 2021-02-02 360 kvm_flush_remote_tlbs_= with_address(kvm, gfn, a066e61f13cf4b Ben Gardon 2021-02-02 361 KVM_PAGES_PER_H= PAGE(level)); a066e61f13cf4b Ben Gardon 2021-02-02 362 = 7cca2d0b7e7d9f Ben Gardon 2021-02-02 363 call_rcu(&sp->rcu_head= , tdp_mmu_free_sp_rcu_callback); a066e61f13cf4b Ben Gardon 2021-02-02 364 } a066e61f13cf4b Ben Gardon 2021-02-02 365 = 2f2fad0897cbfd Ben Gardon 2020-10-14 366 /** 2f2fad0897cbfd Ben Gardon 2020-10-14 367 * handle_changed_spte = - handle bookkeeping associated with an SPTE change 2f2fad0897cbfd Ben Gardon 2020-10-14 368 * @kvm: kvm instance 2f2fad0897cbfd Ben Gardon 2020-10-14 369 * @as_id: the address = space of the paging structure the SPTE was a part of 2f2fad0897cbfd Ben Gardon 2020-10-14 370 * @gfn: the base GFN t= hat was mapped by the SPTE 2f2fad0897cbfd Ben Gardon 2020-10-14 371 * @old_spte: The value= of the SPTE before the change 2f2fad0897cbfd Ben Gardon 2020-10-14 372 * @new_spte: The value= of the SPTE after the change 2f2fad0897cbfd Ben Gardon 2020-10-14 373 * @level: the level of= the PT the SPTE is part of in the paging structure 9a77daacc87dee Ben Gardon 2021-02-02 374 * @shared: This operat= ion may not be running under the exclusive use of 9a77daacc87dee Ben Gardon 2021-02-02 375 * the MMU lock and= the operation must synchronize with other 9a77daacc87dee Ben Gardon 2021-02-02 376 * threads that mig= ht be modifying SPTEs. 2f2fad0897cbfd Ben Gardon 2020-10-14 377 * 2f2fad0897cbfd Ben Gardon 2020-10-14 378 * Handle bookkeeping t= hat might result from the modification of a SPTE. 2f2fad0897cbfd Ben Gardon 2020-10-14 379 * This function must b= e called for all TDP SPTE modifications. 2f2fad0897cbfd Ben Gardon 2020-10-14 380 */ 2f2fad0897cbfd Ben Gardon 2020-10-14 381 static void __handle_ch= anged_spte(struct kvm *kvm, int as_id, gfn_t gfn, 9a77daacc87dee Ben Gardon 2021-02-02 382 u64 old_spte, u64= new_spte, int level, 9a77daacc87dee Ben Gardon 2021-02-02 383 bool shared) 2f2fad0897cbfd Ben Gardon 2020-10-14 384 { 2f2fad0897cbfd Ben Gardon 2020-10-14 385 bool was_present =3D i= s_shadow_present_pte(old_spte); 2f2fad0897cbfd Ben Gardon 2020-10-14 386 bool is_present =3D is= _shadow_present_pte(new_spte); 2f2fad0897cbfd Ben Gardon 2020-10-14 387 bool was_leaf =3D was_= present && is_last_spte(old_spte, level); 2f2fad0897cbfd Ben Gardon 2020-10-14 388 bool is_leaf =3D is_pr= esent && is_last_spte(new_spte, level); 2f2fad0897cbfd Ben Gardon 2020-10-14 389 bool pfn_changed =3D s= pte_to_pfn(old_spte) !=3D spte_to_pfn(new_spte); 2f2fad0897cbfd Ben Gardon 2020-10-14 390 = 2f2fad0897cbfd Ben Gardon 2020-10-14 391 WARN_ON(level > PT64_R= OOT_MAX_LEVEL); 2f2fad0897cbfd Ben Gardon 2020-10-14 392 WARN_ON(level < PG_LEV= EL_4K); 764388ce598f0c Sean Christopherson 2020-10-23 393 WARN_ON(gfn & (KVM_PAG= ES_PER_HPAGE(level) - 1)); 2f2fad0897cbfd Ben Gardon 2020-10-14 394 = 2f2fad0897cbfd Ben Gardon 2020-10-14 395 /* 2f2fad0897cbfd Ben Gardon 2020-10-14 396 * If this warning wer= e to trigger it would indicate that there was a 2f2fad0897cbfd Ben Gardon 2020-10-14 397 * missing MMU notifie= r or a race with some notifier handler. 2f2fad0897cbfd Ben Gardon 2020-10-14 398 * A present, leaf SPT= E should never be directly replaced with another 2f2fad0897cbfd Ben Gardon 2020-10-14 399 * present leaf SPTE p= ointing to a differnt PFN. A notifier handler 2f2fad0897cbfd Ben Gardon 2020-10-14 400 * should be zapping t= he SPTE before the main MM's page table is 2f2fad0897cbfd Ben Gardon 2020-10-14 401 * changed, or the SPT= E should be zeroed, and the TLBs flushed by the 2f2fad0897cbfd Ben Gardon 2020-10-14 402 * thread before repla= cement. 2f2fad0897cbfd Ben Gardon 2020-10-14 403 */ 2f2fad0897cbfd Ben Gardon 2020-10-14 404 if (was_leaf && is_lea= f && pfn_changed) { 2f2fad0897cbfd Ben Gardon 2020-10-14 405 pr_err("Invalid SPTE = change: cannot replace a present leaf\n" 2f2fad0897cbfd Ben Gardon 2020-10-14 406 "SPTE with ano= ther present leaf SPTE mapping a\n" 2f2fad0897cbfd Ben Gardon 2020-10-14 407 "different PFN= !\n" 2f2fad0897cbfd Ben Gardon 2020-10-14 408 "as_id: %d gfn= : %llx old_spte: %llx new_spte: %llx level: %d", 2f2fad0897cbfd Ben Gardon 2020-10-14 409 as_id, gfn, ol= d_spte, new_spte, level); 2f2fad0897cbfd Ben Gardon 2020-10-14 410 = 2f2fad0897cbfd Ben Gardon 2020-10-14 411 /* 2f2fad0897cbfd Ben Gardon 2020-10-14 412 * Crash the host to = prevent error propagation and guest data 2f2fad0897cbfd Ben Gardon 2020-10-14 413 * courruption. 2f2fad0897cbfd Ben Gardon 2020-10-14 414 */ 2f2fad0897cbfd Ben Gardon 2020-10-14 415 BUG(); 2f2fad0897cbfd Ben Gardon 2020-10-14 416 } 2f2fad0897cbfd Ben Gardon 2020-10-14 417 = 2f2fad0897cbfd Ben Gardon 2020-10-14 418 if (old_spte =3D=3D ne= w_spte) 2f2fad0897cbfd Ben Gardon 2020-10-14 419 return; 2f2fad0897cbfd Ben Gardon 2020-10-14 420 = b9a98c3437e353 Ben Gardon 2020-10-27 421 trace_kvm_tdp_mmu_spte= _changed(as_id, gfn, level, old_spte, new_spte); b9a98c3437e353 Ben Gardon 2020-10-27 422 = 2f2fad0897cbfd Ben Gardon 2020-10-14 423 /* 2f2fad0897cbfd Ben Gardon 2020-10-14 424 * The only times a SP= TE should be changed from a non-present to 2f2fad0897cbfd Ben Gardon 2020-10-14 425 * non-present state i= s when an MMIO entry is installed/modified/ 2f2fad0897cbfd Ben Gardon 2020-10-14 426 * removed. In that ca= se, there is nothing to do here. 2f2fad0897cbfd Ben Gardon 2020-10-14 427 */ 2f2fad0897cbfd Ben Gardon 2020-10-14 428 if (!was_present && !i= s_present) { 2f2fad0897cbfd Ben Gardon 2020-10-14 429 /* 2f2fad0897cbfd Ben Gardon 2020-10-14 430 * If this change doe= s not involve a MMIO SPTE, it is 2f2fad0897cbfd Ben Gardon 2020-10-14 431 * unexpected. Log th= e change, though it should not impact the 2f2fad0897cbfd Ben Gardon 2020-10-14 432 * guest since both t= he former and current SPTEs are nonpresent. 2f2fad0897cbfd Ben Gardon 2020-10-14 433 */ 2f2fad0897cbfd Ben Gardon 2020-10-14 434 if (WARN_ON(!is_mmio_= spte(old_spte) && !is_mmio_spte(new_spte))) 2f2fad0897cbfd Ben Gardon 2020-10-14 435 pr_err("Unexpected S= PTE change! Nonpresent SPTEs\n" 2f2fad0897cbfd Ben Gardon 2020-10-14 436 "should not b= e replaced with another,\n" 2f2fad0897cbfd Ben Gardon 2020-10-14 437 "different no= npresent SPTE, unless one or both\n" 2f2fad0897cbfd Ben Gardon 2020-10-14 438 "are MMIO SPT= Es.\n" 2f2fad0897cbfd Ben Gardon 2020-10-14 439 "as_id: %d gf= n: %llx old_spte: %llx new_spte: %llx level: %d", 2f2fad0897cbfd Ben Gardon 2020-10-14 440 as_id, gfn, o= ld_spte, new_spte, level); 2f2fad0897cbfd Ben Gardon 2020-10-14 441 return; 2f2fad0897cbfd Ben Gardon 2020-10-14 442 } 2f2fad0897cbfd Ben Gardon 2020-10-14 443 = 2f2fad0897cbfd Ben Gardon 2020-10-14 444 = 2f2fad0897cbfd Ben Gardon 2020-10-14 445 if (was_leaf && is_dir= ty_spte(old_spte) && 2f2fad0897cbfd Ben Gardon 2020-10-14 446 (!is_dirty_spte(ne= w_spte) || pfn_changed)) 2f2fad0897cbfd Ben Gardon 2020-10-14 447 kvm_set_pfn_dirty(spt= e_to_pfn(old_spte)); 2f2fad0897cbfd Ben Gardon 2020-10-14 448 = 2f2fad0897cbfd Ben Gardon 2020-10-14 449 /* 2f2fad0897cbfd Ben Gardon 2020-10-14 450 * Recursively handle = child PTs if the change removed a subtree from 2f2fad0897cbfd Ben Gardon 2020-10-14 451 * the paging structur= e. 2f2fad0897cbfd Ben Gardon 2020-10-14 452 */ a066e61f13cf4b Ben Gardon 2021-02-02 453 if (was_present && !wa= s_leaf && (pfn_changed || !is_present)) a066e61f13cf4b Ben Gardon 2021-02-02 454 handle_removed_tdp_mm= u_page(kvm, 9a77daacc87dee Ben Gardon 2021-02-02 455 spte_to_child_pt(ol= d_spte, level), shared); 2f2fad0897cbfd Ben Gardon 2020-10-14 456 } 2f2fad0897cbfd Ben Gardon 2020-10-14 457 = 2f2fad0897cbfd Ben Gardon 2020-10-14 458 static void handle_chan= ged_spte(struct kvm *kvm, int as_id, gfn_t gfn, 9a77daacc87dee Ben Gardon 2021-02-02 459 u64 old_spte, u64 n= ew_spte, int level, 9a77daacc87dee Ben Gardon 2021-02-02 460 bool shared) 2f2fad0897cbfd Ben Gardon 2020-10-14 461 { 9a77daacc87dee Ben Gardon 2021-02-02 462 __handle_changed_spte(= kvm, as_id, gfn, old_spte, new_spte, level, 9a77daacc87dee Ben Gardon 2021-02-02 463 shared); f8e144971c6834 Ben Gardon 2020-10-14 464 handle_changed_spte_ac= c_track(old_spte, new_spte, level); a6a0b05da9f37f Ben Gardon 2020-10-14 465 handle_changed_spte_di= rty_log(kvm, as_id, gfn, old_spte, a6a0b05da9f37f Ben Gardon 2020-10-14 466 new_spte, lev= el); 2f2fad0897cbfd Ben Gardon 2020-10-14 467 } faaf05b00aecdb Ben Gardon 2020-10-14 468 = 9a77daacc87dee Ben Gardon 2021-02-02 469 /* 9a77daacc87dee Ben Gardon 2021-02-02 470 * tdp_mmu_set_spte_ato= mic - Set a TDP MMU SPTE atomically and handle the 9a77daacc87dee Ben Gardon 2021-02-02 471 * associated bookkeepi= ng 9a77daacc87dee Ben Gardon 2021-02-02 472 * 9a77daacc87dee Ben Gardon 2021-02-02 473 * @kvm: kvm instance 9a77daacc87dee Ben Gardon 2021-02-02 474 * @iter: a tdp_iter in= stance currently on the SPTE that should be set 9a77daacc87dee Ben Gardon 2021-02-02 475 * @new_spte: The value= the SPTE should be set to 9a77daacc87dee Ben Gardon 2021-02-02 476 * Returns: true if the= SPTE was set, false if it was not. If false is returned, 9a77daacc87dee Ben Gardon 2021-02-02 477 * this function wi= ll have no side-effects. 9a77daacc87dee Ben Gardon 2021-02-02 478 */ 9a77daacc87dee Ben Gardon 2021-02-02 479 static inline bool tdp_= mmu_set_spte_atomic(struct kvm *kvm, 9a77daacc87dee Ben Gardon 2021-02-02 480 struct tdp_iter= *iter, 9a77daacc87dee Ben Gardon 2021-02-02 481 u64 new_spte) 9a77daacc87dee Ben Gardon 2021-02-02 482 { 9a77daacc87dee Ben Gardon 2021-02-02 @483 u64 *root_pt =3D tdp_i= ter_root_pt(iter); 9a77daacc87dee Ben Gardon 2021-02-02 484 struct kvm_mmu_page *r= oot =3D sptep_to_sp(root_pt); 9a77daacc87dee Ben Gardon 2021-02-02 485 int as_id =3D kvm_mmu_= page_as_id(root); 9a77daacc87dee Ben Gardon 2021-02-02 486 = 9a77daacc87dee Ben Gardon 2021-02-02 487 lockdep_assert_held_re= ad(&kvm->mmu_lock); 9a77daacc87dee Ben Gardon 2021-02-02 488 = 9a77daacc87dee Ben Gardon 2021-02-02 489 if (cmpxchg64(rcu_dere= ference(iter->sptep), iter->old_spte, 9a77daacc87dee Ben Gardon 2021-02-02 490 new_spte) !=3D = iter->old_spte) 9a77daacc87dee Ben Gardon 2021-02-02 491 return false; 9a77daacc87dee Ben Gardon 2021-02-02 492 = 9a77daacc87dee Ben Gardon 2021-02-02 493 handle_changed_spte(kv= m, as_id, iter->gfn, iter->old_spte, new_spte, 9a77daacc87dee Ben Gardon 2021-02-02 494 iter->level, tru= e); 9a77daacc87dee Ben Gardon 2021-02-02 495 = 9a77daacc87dee Ben Gardon 2021-02-02 496 return true; 9a77daacc87dee Ben Gardon 2021-02-02 497 } 9a77daacc87dee Ben Gardon 2021-02-02 498 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============0394322854501050709== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 VEL/JFOL4mjNvMfr/wd0m8nohzoCAA== --===============0394322854501050709==--