Lines Matching defs:level

215 	role.level--;
259 u64 old_spte, u64 new_spte, int level,
323 int level = sp->role.level;
333 gfn_t gfn = base_gfn + i * KVM_PAGES_PER_HPAGE(level);
371 * document that A/D assists can use upper-level PxE
388 * level SPTE before it is zapped, and then make this
394 REMOVED_SPTE, level);
397 old_spte, REMOVED_SPTE, level, shared);
410 * @level: the level of the PT the SPTE is part of in the paging structure
420 u64 old_spte, u64 new_spte, int level,
425 bool was_leaf = was_present && is_last_spte(old_spte, level);
426 bool is_leaf = is_present && is_last_spte(new_spte, level);
429 WARN_ON_ONCE(level > PT64_ROOT_MAX_LEVEL);
430 WARN_ON_ONCE(level < PG_LEVEL_4K);
431 WARN_ON_ONCE(gfn & (KVM_PAGES_PER_HPAGE(level) - 1));
446 "as_id: %d gfn: %llx old_spte: %llx new_spte: %llx level: %d",
447 as_id, gfn, old_spte, new_spte, level);
459 trace_kvm_tdp_mmu_spte_changed(as_id, gfn, level, old_spte, new_spte);
484 "as_id: %d gfn: %llx old_spte: %llx new_spte: %llx level: %d",
485 as_id, gfn, old_spte, new_spte, level);
490 kvm_update_page_stats(kvm, level, is_leaf ? 1 : -1);
504 handle_removed_pt(kvm, spte_to_child_pt(old_spte, level), shared);
555 new_spte, iter->level, true);
575 kvm_flush_remote_tlbs_gfn(kvm, iter->gfn, iter->level);
598 * @level: The level _containing_ the SPTE (its parent PT's level)
604 u64 old_spte, u64 new_spte, gfn_t gfn, int level)
617 old_spte = kvm_tdp_mmu_write_spte(sptep, old_spte, new_spte, level);
619 handle_changed_spte(kvm, as_id, gfn, old_spte, new_spte, level, false);
629 iter->gfn, iter->level);
638 !is_last_spte(_iter.old_spte, _iter.level)) \
717 if (iter.level > zap_level)
750 * level, and then zap top-level SPs on the second pass. "1gb" is not
758 __tdp_mmu_zap_root(kvm, root, shared, root->role.level);
779 sp->gfn, sp->role.level + 1);
810 !is_last_spte(iter.old_spte, iter.level))
848 * also being zapped by a worker. Walking zapped top-level SPTEs isn't
949 * Installs a last-level SPTE to handle a TDP page fault.
961 if (WARN_ON_ONCE(sp->role.level != fault->goal_level))
976 !is_last_spte(iter->old_spte, iter->level))
977 kvm_flush_remote_tlbs_gfn(vcpu->kvm, iter->gfn, iter->level);
996 trace_kvm_mmu_set_spte(iter->level, iter->gfn,
1059 disallowed_hugepage_adjust(fault, iter.old_spte, iter.level);
1068 if (iter.level == fault->goal_level)
1071 /* Step down into the lower level page table if it exists. */
1091 * Force the guest to retry if installing an upper level SPTE
1100 fault->req_level >= iter.level) {
1109 * The walk aborted before reaching the target level, e.g. because the
1110 * iterator detected an upper level SPTE was frozen during traversal.
1112 WARN_ON_ONCE(iter.level == fault->goal_level);
1183 iter->level);
1196 iter->level);
1199 trace_kvm_tdp_mmu_spte_changed(iter->as_id, iter->gfn, iter->level,
1228 if (iter->level != PG_LEVEL_4K ||
1288 !is_last_spte(iter.old_spte, iter.level) ||
1387 const int level = iter->level;
1398 * Replace the huge spte with a pointer to the populated lower level
1414 kvm_update_page_stats(kvm, level - 1, SPTE_ENT_PER_PAGE);
1417 trace_kvm_mmu_split_huge_page(iter->gfn, huge_spte, level, ret);
1434 * level into one lower level. For example, if we encounter a 1GB page
1440 * level above the target level (e.g. splitting a 1GB to 512 2MB pages,
1457 iter.level, ret);
1488 * Try to split all huge pages mapped by the TDP MMU down to the target level.
1597 if (iter.level > PG_LEVEL_4K ||
1608 iter.level);
1610 trace_kvm_tdp_mmu_spte_changed(iter.as_id, iter.gfn, iter.level,
1653 if (iter.level > KVM_MAX_HUGEPAGE_LEVEL ||
1662 if (is_last_spte(iter.old_spte, iter.level))
1667 * the current level overlaps but is not contained by the slot,
1677 if (max_mapping_level < iter.level)
1704 * Removes write access on the last level SPTE mapping this GFN and unsets the
1721 !is_last_spte(iter.old_spte, iter.level))
1740 * Removes write access on the last level SPTE mapping this GFN and unsets the
1759 * Return the level of the lowest level SPTE added to sptes.
1772 *root_level = vcpu->arch.mmu->root_role.level;
1775 leaf = iter.level;
1783 * Returns the last level spte pointer of the shadow page walk for the given