Home
last modified time | relevance | path

Searched refs:new_spte (Results 1 – 7 of 7) sorted by relevance

/linux/arch/x86/kvm/mmu/
H A Dtdp_mmu.c324 u64 old_spte, u64 new_spte, int level,
498 static void *get_external_spt(gfn_t gfn, u64 new_spte, int level) in get_external_spt() argument
500 if (is_shadow_present_pte(new_spte) && !is_last_spte(new_spte, level)) { in get_external_spt()
501 struct kvm_mmu_page *sp = spte_to_child_sp(new_spte); in get_external_spt()
513 u64 new_spte, int level) in set_external_spte_present() argument
516 bool is_present = is_shadow_present_pte(new_spte); in set_external_spte_present()
517 bool is_leaf = is_present && is_last_spte(new_spte, level); in set_external_spte_present()
536 ret = kvm_x86_call(set_external_spte)(kvm, gfn, level, new_spte); in set_external_spte_present()
538 void *external_spt = get_external_spt(gfn, new_spte, level); in set_external_spte_present()
546 __kvm_tdp_mmu_write_spte(sptep, new_spte); in set_external_spte_present()
[all …]
H A Dtdp_iter.h22 static inline u64 kvm_tdp_mmu_write_spte_atomic(tdp_ptep_t sptep, u64 new_spte) in kvm_tdp_mmu_write_spte_atomic() argument
24 KVM_MMU_WARN_ON(is_ept_ve_possible(new_spte)); in kvm_tdp_mmu_write_spte_atomic()
25 return xchg(rcu_dereference(sptep), new_spte); in kvm_tdp_mmu_write_spte_atomic()
35 static inline void __kvm_tdp_mmu_write_spte(tdp_ptep_t sptep, u64 new_spte) in __kvm_tdp_mmu_write_spte() argument
37 KVM_MMU_WARN_ON(is_ept_ve_possible(new_spte)); in __kvm_tdp_mmu_write_spte()
38 WRITE_ONCE(*rcu_dereference(sptep), new_spte); in __kvm_tdp_mmu_write_spte()
54 u64 new_spte, int level) in kvm_tdp_mmu_write_spte() argument
57 return kvm_tdp_mmu_write_spte_atomic(sptep, new_spte); in kvm_tdp_mmu_write_spte()
59 __kvm_tdp_mmu_write_spte(sptep, new_spte); in kvm_tdp_mmu_write_spte()
H A Dmmutrace.h270 __field(u64, new_spte)
280 __entry->new_spte = *sptep;
288 __entry->old_spte, __entry->new_spte,
397 TP_PROTO(int as_id, gfn_t gfn, int level, u64 old_spte, u64 new_spte),
398 TP_ARGS(as_id, gfn, level, old_spte, new_spte),
403 __field(u64, new_spte)
413 __entry->new_spte = new_spte;
420 __entry->old_spte, __entry->new_spte
H A Dspte.h527 static inline bool leaf_spte_change_needs_tlb_flush(u64 old_spte, u64 new_spte) in leaf_spte_change_needs_tlb_flush() argument
529 return is_mmu_writable_spte(old_spte) && !is_mmu_writable_spte(new_spte); in leaf_spte_change_needs_tlb_flush()
547 bool host_writable, u64 *new_spte);
H A Dspte.c190 bool host_writable, u64 *new_spte) in make_spte() argument
300 *new_spte = spte; in make_spte()
H A Dmmu.c482 static void mmu_spte_set(u64 *sptep, u64 new_spte) in mmu_spte_set() argument
485 __set_spte(sptep, new_spte); in mmu_spte_set()
493 static bool mmu_spte_update(u64 *sptep, u64 new_spte) in mmu_spte_update() argument
497 WARN_ON_ONCE(!is_shadow_present_pte(new_spte)); in mmu_spte_update()
498 check_spte_writable_invariants(new_spte); in mmu_spte_update()
501 mmu_spte_set(sptep, new_spte); in mmu_spte_update()
506 __update_clear_spte_fast(sptep, new_spte); in mmu_spte_update()
508 old_spte = __update_clear_spte_slow(sptep, new_spte); in mmu_spte_update()
511 spte_to_pfn(old_spte) != spte_to_pfn(new_spte)); in mmu_spte_update()
513 return leaf_spte_change_needs_tlb_flush(old_spte, new_spte); in mmu_spte_update()
[all …]
/linux/Documentation/virt/kvm/
H A Dlocking.rst175 | spte = new_spte; | |
188 | old_spte = xchg(spte, new_spte);| |
190 | !new_spte.Accessed) | |
193 | !new_spte.Dirty) | |