Lines Matching defs:kvm
284 static void kvm_flush_remote_tlbs_sptep(struct kvm *kvm, u64 *sptep) in kvm_flush_remote_tlbs_sptep()
561 static u64 mmu_spte_clear_track_bits(struct kvm *kvm, u64 *sptep) in mmu_spte_clear_track_bits()
827 static void account_shadowed(struct kvm *kvm, struct kvm_mmu_page *sp) in account_shadowed()
848 void track_possible_nx_huge_page(struct kvm *kvm, struct kvm_mmu_page *sp) in track_possible_nx_huge_page()
866 static void account_nx_huge_page(struct kvm *kvm, struct kvm_mmu_page *sp, in account_nx_huge_page()
875 static void unaccount_shadowed(struct kvm *kvm, struct kvm_mmu_page *sp) in unaccount_shadowed()
891 void untrack_possible_nx_huge_page(struct kvm *kvm, struct kvm_mmu_page *sp) in untrack_possible_nx_huge_page()
900 static void unaccount_nx_huge_page(struct kvm *kvm, struct kvm_mmu_page *sp) in unaccount_nx_huge_page()
969 static void pte_list_desc_remove_entry(struct kvm *kvm, in pte_list_desc_remove_entry()
1006 static void pte_list_remove(struct kvm *kvm, u64 *spte, in pte_list_remove()
1037 static void kvm_zap_one_rmap_spte(struct kvm *kvm, in kvm_zap_one_rmap_spte()
1045 static bool kvm_zap_all_rmap_sptes(struct kvm *kvm, in kvm_zap_all_rmap_sptes()
1095 static void rmap_remove(struct kvm *kvm, u64 *spte) in rmap_remove()
1195 static void drop_spte(struct kvm *kvm, u64 *sptep) in drop_spte()
1203 static void drop_large_spte(struct kvm *kvm, u64 *sptep, bool flush) in drop_large_spte()
1282 static bool __rmap_clear_dirty(struct kvm *kvm, struct kvm_rmap_head *rmap_head, in __rmap_clear_dirty()
1307 static void kvm_mmu_write_protect_pt_masked(struct kvm *kvm, in kvm_mmu_write_protect_pt_masked()
1340 static void kvm_mmu_clear_dirty_pt_masked(struct kvm *kvm, in kvm_mmu_clear_dirty_pt_masked()
1373 void kvm_arch_mmu_enable_log_dirty_pt_masked(struct kvm *kvm, in kvm_arch_mmu_enable_log_dirty_pt_masked()
1414 bool kvm_mmu_slot_gfn_write_protect(struct kvm *kvm, in kvm_mmu_slot_gfn_write_protect()
1444 static bool __kvm_zap_rmap(struct kvm *kvm, struct kvm_rmap_head *rmap_head, in __kvm_zap_rmap()
1450 static bool kvm_zap_rmap(struct kvm *kvm, struct kvm_rmap_head *rmap_head, in kvm_zap_rmap()
1457 static bool kvm_set_pte_rmap(struct kvm *kvm, struct kvm_rmap_head *rmap_head, in kvm_set_pte_rmap()
1567 static __always_inline bool kvm_handle_gfn_range(struct kvm *kvm, in kvm_handle_gfn_range()
1582 bool kvm_unmap_gfn_range(struct kvm *kvm, struct kvm_gfn_range *range) in kvm_unmap_gfn_range()
1599 bool kvm_set_spte_gfn(struct kvm *kvm, struct kvm_gfn_range *range) in kvm_set_spte_gfn()
1612 static bool kvm_age_rmap(struct kvm *kvm, struct kvm_rmap_head *rmap_head, in kvm_age_rmap()
1626 static bool kvm_test_age_rmap(struct kvm *kvm, struct kvm_rmap_head *rmap_head, in kvm_test_age_rmap()
1641 static void __rmap_add(struct kvm *kvm, in __rmap_add()
1673 bool kvm_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range) in kvm_age_gfn()
1686 bool kvm_test_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range) in kvm_test_age_gfn()
1719 static inline void kvm_mod_used_mmu_pages(struct kvm *kvm, long nr) in kvm_mod_used_mmu_pages()
1725 static void kvm_account_mmu_page(struct kvm *kvm, struct kvm_mmu_page *sp) in kvm_account_mmu_page()
1731 static void kvm_unaccount_mmu_page(struct kvm *kvm, struct kvm_mmu_page *sp) in kvm_unaccount_mmu_page()
1763 static void mmu_page_remove_parent_pte(struct kvm *kvm, struct kvm_mmu_page *sp, in mmu_page_remove_parent_pte()
1769 static void drop_parent_pte(struct kvm *kvm, struct kvm_mmu_page *sp, in drop_parent_pte()
1884 static void kvm_unlink_unsync_page(struct kvm *kvm, struct kvm_mmu_page *sp) in kvm_unlink_unsync_page()
1997 static bool kvm_mmu_remote_flush_or_zap(struct kvm *kvm, in kvm_mmu_remote_flush_or_zap()
2011 static bool is_obsolete_sp(struct kvm *kvm, struct kvm_mmu_page *sp) in is_obsolete_sp()
2151 static struct kvm_mmu_page *kvm_mmu_find_shadow_page(struct kvm *kvm, in kvm_mmu_find_shadow_page()
2236 static struct kvm_mmu_page *kvm_mmu_alloc_shadow_page(struct kvm *kvm, in kvm_mmu_alloc_shadow_page()
2272 static struct kvm_mmu_page *__kvm_mmu_get_shadow_page(struct kvm *kvm, in __kvm_mmu_get_shadow_page()
2429 static void __link_shadow_page(struct kvm *kvm, in __link_shadow_page()
2493 static int mmu_page_zap_pte(struct kvm *kvm, struct kvm_mmu_page *sp, in mmu_page_zap_pte()
2523 static int kvm_mmu_page_unlink_children(struct kvm *kvm, in kvm_mmu_page_unlink_children()
2536 static void kvm_mmu_unlink_parents(struct kvm *kvm, struct kvm_mmu_page *sp) in kvm_mmu_unlink_parents()
2545 static int mmu_zap_unsync_children(struct kvm *kvm, in mmu_zap_unsync_children()
2569 static bool __kvm_mmu_prepare_zap_page(struct kvm *kvm, in __kvm_mmu_prepare_zap_page()
2634 static bool kvm_mmu_prepare_zap_page(struct kvm *kvm, struct kvm_mmu_page *sp, in kvm_mmu_prepare_zap_page()
2643 static void kvm_mmu_commit_zap_page(struct kvm *kvm, in kvm_mmu_commit_zap_page()
2668 static unsigned long kvm_mmu_zap_oldest_mmu_pages(struct kvm *kvm, in kvm_mmu_zap_oldest_mmu_pages()
2705 static inline unsigned long kvm_mmu_available_pages(struct kvm *kvm) in kvm_mmu_available_pages()
2741 void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned long goal_nr_mmu_pages) in kvm_mmu_change_mmu_pages()
2757 int kvm_mmu_unprotect_page(struct kvm *kvm, gfn_t gfn) in kvm_mmu_unprotect_page()
2790 static void kvm_unsync_page(struct kvm *kvm, struct kvm_mmu_page *sp) in kvm_unsync_page()
2805 int mmu_try_to_unsync_pages(struct kvm *kvm, const struct kvm_memory_slot *slot, in mmu_try_to_unsync_pages()
3082 static int host_pfn_mapping_level(struct kvm *kvm, gfn_t gfn, in host_pfn_mapping_level()
3146 static int __kvm_mmu_max_mapping_level(struct kvm *kvm, in __kvm_mmu_max_mapping_level()
3170 int kvm_mmu_max_mapping_level(struct kvm *kvm, in kvm_mmu_max_mapping_level()
3566 static void mmu_free_root_page(struct kvm *kvm, hpa_t *root_hpa, in mmu_free_root_page()
3587 void kvm_mmu_free_roots(struct kvm *kvm, struct kvm_mmu *mmu, in kvm_mmu_free_roots()
3643 void kvm_mmu_free_guest_mode_roots(struct kvm *kvm, struct kvm_mmu *mmu) in kvm_mmu_free_guest_mode_roots()
3735 static int mmu_first_shadow_root_alloc(struct kvm *kvm) in mmu_first_shadow_root_alloc()
4682 static bool cached_root_find_and_keep_current(struct kvm *kvm, struct kvm_mmu *mmu, in cached_root_find_and_keep_current()
4716 static bool cached_root_find_without_current(struct kvm *kvm, struct kvm_mmu *mmu, in cached_root_find_without_current()
4737 static bool fast_pgd_switch(struct kvm *kvm, struct kvm_mmu *mmu, in fast_pgd_switch()
5623 struct kvm *kvm = vcpu->kvm; in kvm_mmu_unload() local
5632 static bool is_obsolete_root(struct kvm *kvm, hpa_t root_hpa) in is_obsolete_root()
5659 static void __kvm_mmu_free_obsolete_roots(struct kvm *kvm, struct kvm_mmu *mmu) in __kvm_mmu_free_obsolete_roots()
6043 static __always_inline bool __walk_slot_rmaps(struct kvm *kvm, in __walk_slot_rmaps()
6072 static __always_inline bool walk_slot_rmaps(struct kvm *kvm, in walk_slot_rmaps()
6083 static __always_inline bool walk_slot_rmaps_4k(struct kvm *kvm, in walk_slot_rmaps_4k()
6183 static void kvm_zap_obsolete_pages(struct kvm *kvm) in kvm_zap_obsolete_pages()
6248 static void kvm_mmu_zap_all_fast(struct kvm *kvm) in kvm_mmu_zap_all_fast()
6299 static bool kvm_has_zapped_obsolete_pages(struct kvm *kvm) in kvm_has_zapped_obsolete_pages()
6304 void kvm_mmu_init_vm(struct kvm *kvm) in kvm_mmu_init_vm()
6323 static void mmu_free_vm_memory_caches(struct kvm *kvm) in mmu_free_vm_memory_caches()
6330 void kvm_mmu_uninit_vm(struct kvm *kvm) in kvm_mmu_uninit_vm()
6338 static bool kvm_rmap_zap_gfn_range(struct kvm *kvm, gfn_t gfn_start, gfn_t gfn_end) in kvm_rmap_zap_gfn_range()
6373 void kvm_zap_gfn_range(struct kvm *kvm, gfn_t gfn_start, gfn_t gfn_end) in kvm_zap_gfn_range()
6399 static bool slot_rmap_write_protect(struct kvm *kvm, in slot_rmap_write_protect()
6406 void kvm_mmu_slot_remove_write_access(struct kvm *kvm, in kvm_mmu_slot_remove_write_access()
6429 static bool need_topup_split_caches_or_resched(struct kvm *kvm) in need_topup_split_caches_or_resched()
6444 static int topup_split_caches(struct kvm *kvm) in topup_split_caches()
6477 static struct kvm_mmu_page *shadow_mmu_get_sp_for_split(struct kvm *kvm, u64 *huge_sptep) in shadow_mmu_get_sp_for_split()
6504 static void shadow_mmu_split_huge_page(struct kvm *kvm, in shadow_mmu_split_huge_page()
6550 static int shadow_mmu_try_split_huge_page(struct kvm *kvm, in shadow_mmu_try_split_huge_page()
6589 static bool shadow_mmu_try_split_huge_pages(struct kvm *kvm, in shadow_mmu_try_split_huge_pages()
6635 static void kvm_shadow_mmu_try_split_huge_pages(struct kvm *kvm, in kvm_shadow_mmu_try_split_huge_pages()
6654 void kvm_mmu_try_split_huge_pages(struct kvm *kvm, in kvm_mmu_try_split_huge_pages()
6673 void kvm_mmu_slot_try_split_huge_pages(struct kvm *kvm, in kvm_mmu_slot_try_split_huge_pages()
6704 static bool kvm_mmu_zap_collapsible_spte(struct kvm *kvm, in kvm_mmu_zap_collapsible_spte()
6741 static void kvm_rmap_zap_collapsible_sptes(struct kvm *kvm, in kvm_rmap_zap_collapsible_sptes()
6753 void kvm_mmu_zap_collapsible_sptes(struct kvm *kvm, in kvm_mmu_zap_collapsible_sptes()
6769 void kvm_mmu_slot_leaf_clear_dirty(struct kvm *kvm, in kvm_mmu_slot_leaf_clear_dirty()
6798 static void kvm_mmu_zap_all(struct kvm *kvm) in kvm_mmu_zap_all()
6823 void kvm_arch_flush_shadow_all(struct kvm *kvm) in kvm_arch_flush_shadow_all()
6828 void kvm_arch_flush_shadow_memslot(struct kvm *kvm, in kvm_arch_flush_shadow_memslot()
6834 void kvm_mmu_invalidate_mmio_sptes(struct kvm *kvm, u64 gen) in kvm_mmu_invalidate_mmio_sptes()
6862 struct kvm *kvm; in mmu_shrink_scan() local
6983 struct kvm *kvm; in set_nx_huge_pages() local
7135 struct kvm *kvm; in set_nx_huge_pages_recovery_param() local
7148 static void kvm_recover_nx_huge_pages(struct kvm *kvm) in kvm_recover_nx_huge_pages()
7254 static int kvm_nx_huge_page_recovery_worker(struct kvm *kvm, uintptr_t data) in kvm_nx_huge_page_recovery_worker()
7279 int kvm_mmu_post_init_vm(struct kvm *kvm) in kvm_mmu_post_init_vm()
7295 void kvm_mmu_pre_destroy_vm(struct kvm *kvm) in kvm_mmu_pre_destroy_vm()
7302 bool kvm_arch_pre_set_memory_attributes(struct kvm *kvm, in kvm_arch_pre_set_memory_attributes()
7340 static bool hugepage_has_attrs(struct kvm *kvm, struct kvm_memory_slot *slot, in hugepage_has_attrs()
7357 bool kvm_arch_post_set_memory_attributes(struct kvm *kvm, in kvm_arch_post_set_memory_attributes()
7423 void kvm_mmu_init_memslot_memory_attributes(struct kvm *kvm, in kvm_mmu_init_memslot_memory_attributes()