/linux-6.12.1/arch/powerpc/include/asm/ |
D | kvm_book3s_uvmem.h | 9 int kvmppc_uvmem_slot_init(struct kvm *kvm, const struct kvm_memory_slot *slot); 10 void kvmppc_uvmem_slot_free(struct kvm *kvm, 12 unsigned long kvmppc_h_svm_page_in(struct kvm *kvm, 16 unsigned long kvmppc_h_svm_page_out(struct kvm *kvm, 20 unsigned long kvmppc_h_svm_init_start(struct kvm *kvm); 21 unsigned long kvmppc_h_svm_init_done(struct kvm *kvm); 22 int kvmppc_send_page_to_uv(struct kvm *kvm, unsigned long gfn); 23 unsigned long kvmppc_h_svm_init_abort(struct kvm *kvm); 25 struct kvm *kvm, bool skip_page_out); 26 int kvmppc_uvmem_memslot_create(struct kvm *kvm, [all …]
|
/linux-6.12.1/arch/x86/kvm/mmu/ |
D | page_track.c | 23 static bool kvm_external_write_tracking_enabled(struct kvm *kvm) in kvm_external_write_tracking_enabled() argument 30 return smp_load_acquire(&kvm->arch.external_write_tracking_enabled); in kvm_external_write_tracking_enabled() 36 bool kvm_page_track_write_tracking_enabled(struct kvm *kvm) in kvm_page_track_write_tracking_enabled() argument 38 return kvm_external_write_tracking_enabled(kvm) || in kvm_page_track_write_tracking_enabled() 39 kvm_shadow_root_allocated(kvm) || !tdp_enabled; in kvm_page_track_write_tracking_enabled() 60 int kvm_page_track_create_memslot(struct kvm *kvm, in kvm_page_track_create_memslot() argument 64 if (!kvm_page_track_write_tracking_enabled(kvm)) in kvm_page_track_create_memslot() 90 void __kvm_write_track_add_gfn(struct kvm *kvm, struct kvm_memory_slot *slot, in __kvm_write_track_add_gfn() argument 93 lockdep_assert_held_write(&kvm->mmu_lock); in __kvm_write_track_add_gfn() 95 lockdep_assert_once(lockdep_is_held(&kvm->slots_lock) || in __kvm_write_track_add_gfn() [all …]
|
D | tdp_mmu.c | 15 void kvm_mmu_init_tdp_mmu(struct kvm *kvm) in kvm_mmu_init_tdp_mmu() argument 17 INIT_LIST_HEAD(&kvm->arch.tdp_mmu_roots); in kvm_mmu_init_tdp_mmu() 18 spin_lock_init(&kvm->arch.tdp_mmu_pages_lock); in kvm_mmu_init_tdp_mmu() 22 static __always_inline bool kvm_lockdep_assert_mmu_lock_held(struct kvm *kvm, in kvm_lockdep_assert_mmu_lock_held() argument 26 lockdep_assert_held_read(&kvm->mmu_lock); in kvm_lockdep_assert_mmu_lock_held() 28 lockdep_assert_held_write(&kvm->mmu_lock); in kvm_lockdep_assert_mmu_lock_held() 33 void kvm_mmu_uninit_tdp_mmu(struct kvm *kvm) in kvm_mmu_uninit_tdp_mmu() argument 40 kvm_tdp_mmu_invalidate_all_roots(kvm); in kvm_mmu_uninit_tdp_mmu() 41 kvm_tdp_mmu_zap_invalidated_roots(kvm); in kvm_mmu_uninit_tdp_mmu() 43 WARN_ON(atomic64_read(&kvm->arch.tdp_mmu_pages)); in kvm_mmu_uninit_tdp_mmu() [all …]
|
D | page_track.h | 10 bool kvm_page_track_write_tracking_enabled(struct kvm *kvm); 14 int kvm_page_track_create_memslot(struct kvm *kvm, 18 void __kvm_write_track_add_gfn(struct kvm *kvm, struct kvm_memory_slot *slot, 20 void __kvm_write_track_remove_gfn(struct kvm *kvm, 23 bool kvm_gfn_is_write_tracked(struct kvm *kvm, 27 int kvm_page_track_init(struct kvm *kvm); 28 void kvm_page_track_cleanup(struct kvm *kvm); 30 void __kvm_page_track_write(struct kvm *kvm, gpa_t gpa, const u8 *new, int bytes); 31 void kvm_page_track_delete_slot(struct kvm *kvm, struct kvm_memory_slot *slot); 33 static inline bool kvm_page_track_has_external_user(struct kvm *kvm) in kvm_page_track_has_external_user() argument [all …]
|
D | tdp_mmu.h | 10 void kvm_mmu_init_tdp_mmu(struct kvm *kvm); 11 void kvm_mmu_uninit_tdp_mmu(struct kvm *kvm); 20 void kvm_tdp_mmu_put_root(struct kvm *kvm, struct kvm_mmu_page *root); 22 bool kvm_tdp_mmu_zap_leafs(struct kvm *kvm, gfn_t start, gfn_t end, bool flush); 23 bool kvm_tdp_mmu_zap_sp(struct kvm *kvm, struct kvm_mmu_page *sp); 24 void kvm_tdp_mmu_zap_all(struct kvm *kvm); 25 void kvm_tdp_mmu_invalidate_all_roots(struct kvm *kvm); 26 void kvm_tdp_mmu_zap_invalidated_roots(struct kvm *kvm); 30 bool kvm_tdp_mmu_unmap_gfn_range(struct kvm *kvm, struct kvm_gfn_range *range, 32 bool kvm_tdp_mmu_age_gfn_range(struct kvm *kvm, struct kvm_gfn_range *range); [all …]
|
/linux-6.12.1/include/linux/ |
D | kvm_host.h | 193 bool kvm_make_vcpus_request_mask(struct kvm *kvm, unsigned int req, 195 bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req); 231 int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, 233 int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, 235 struct kvm_io_device *kvm_io_bus_get_dev(struct kvm *kvm, enum kvm_bus bus_idx, 270 bool kvm_unmap_gfn_range(struct kvm *kvm, struct kvm_gfn_range *range); 271 bool kvm_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range); 272 bool kvm_test_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range); 324 struct kvm *kvm; member 661 struct kvm *kvm, int irq_source_id, int level, [all …]
|
/linux-6.12.1/virt/kvm/ |
D | eventfd.c | 36 kvm_arch_irqfd_allowed(struct kvm *kvm, struct kvm_irqfd *args) in kvm_arch_irqfd_allowed() argument 46 struct kvm *kvm = irqfd->kvm; in irqfd_inject() local 49 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1, in irqfd_inject() 51 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0, in irqfd_inject() 54 kvm_set_irq(kvm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, in irqfd_inject() 63 srcu_read_lock_held(&resampler->kvm->irq_srcu)) in irqfd_resampler_notify() 76 struct kvm *kvm; in irqfd_resampler_ack() local 81 kvm = resampler->kvm; in irqfd_resampler_ack() 83 kvm_set_irq(kvm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, in irqfd_resampler_ack() 86 idx = srcu_read_lock(&kvm->irq_srcu); in irqfd_resampler_ack() [all …]
|
D | kvm_main.c | 146 static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm); 152 __weak void kvm_arch_guest_memory_reclaimed(struct kvm *kvm) in kvm_arch_guest_memory_reclaimed() argument 285 bool kvm_make_vcpus_request_mask(struct kvm *kvm, unsigned int req, in kvm_make_vcpus_request_mask() argument 299 vcpu = kvm_get_vcpu(kvm, i); in kvm_make_vcpus_request_mask() 311 bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req) in kvm_make_all_cpus_request() argument 324 kvm_for_each_vcpu(i, vcpu, kvm) in kvm_make_all_cpus_request() 334 void kvm_flush_remote_tlbs(struct kvm *kvm) in kvm_flush_remote_tlbs() argument 336 ++kvm->stat.generic.remote_tlb_flush_requests; in kvm_flush_remote_tlbs() 349 if (!kvm_arch_flush_remote_tlbs(kvm) in kvm_flush_remote_tlbs() 350 || kvm_make_all_cpus_request(kvm, KVM_REQ_TLB_FLUSH)) in kvm_flush_remote_tlbs() [all …]
|
/linux-6.12.1/arch/s390/kvm/ |
D | pv.c | 21 bool kvm_s390_pv_is_protected(struct kvm *kvm) in kvm_s390_pv_is_protected() argument 23 lockdep_assert_held(&kvm->lock); in kvm_s390_pv_is_protected() 24 return !!kvm_s390_pv_get_handle(kvm); in kvm_s390_pv_is_protected() 58 static void kvm_s390_clear_pv_state(struct kvm *kvm) in kvm_s390_clear_pv_state() argument 60 kvm->arch.pv.handle = 0; in kvm_s390_clear_pv_state() 61 kvm->arch.pv.guest_len = 0; in kvm_s390_clear_pv_state() 62 kvm->arch.pv.stor_base = 0; in kvm_s390_clear_pv_state() 63 kvm->arch.pv.stor_var = NULL; in kvm_s390_clear_pv_state() 75 KVM_UV_EVENT(vcpu->kvm, 3, "PROTVIRT DESTROY VCPU %d: rc %x rrc %x", in kvm_s390_pv_destroy_cpu() 118 uvcb.guest_handle = kvm_s390_pv_get_handle(vcpu->kvm); in kvm_s390_pv_create_cpu() [all …]
|
D | kvm-s390.c | 270 static int sca_switch_to_extended(struct kvm *kvm); 303 struct kvm *kvm; in kvm_clock_sync() local 308 list_for_each_entry(kvm, &vm_list, vm_list) { in kvm_clock_sync() 309 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_clock_sync() 312 kvm->arch.epoch = vcpu->arch.sie_block->epoch; in kvm_clock_sync() 313 kvm->arch.epdx = vcpu->arch.sie_block->epdx; in kvm_clock_sync() 559 int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) in kvm_vm_ioctl_check_extension() argument 600 if (hpage && !(kvm && kvm_is_ucontrol(kvm))) in kvm_vm_ioctl_check_extension() 679 void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot) in kvm_arch_sync_dirty_log() argument 684 struct gmap *gmap = kvm->arch.gmap; in kvm_arch_sync_dirty_log() [all …]
|
D | kvm-s390.h | 73 debug_sprintf_event(d_vcpu->kvm->arch.dbf, d_loglevel, \ 101 return test_bit(vcpu->vcpu_idx, vcpu->kvm->arch.idle_mask); in is_vcpu_idle() 104 static inline int kvm_is_ucontrol(struct kvm *kvm) in kvm_is_ucontrol() argument 107 if (kvm->arch.gmap) in kvm_is_ucontrol() 216 static inline int test_kvm_facility(struct kvm *kvm, unsigned long nr) in test_kvm_facility() argument 218 return __test_facility(nr, kvm->arch.model.fac_mask) && in test_kvm_facility() 219 __test_facility(nr, kvm->arch.model.fac_list); in test_kvm_facility() 233 static inline int test_kvm_cpu_feat(struct kvm *kvm, unsigned long nr) in test_kvm_cpu_feat() argument 236 return test_bit_inv(nr, kvm->arch.cpu_feat); in test_kvm_cpu_feat() 240 static inline int kvm_s390_user_cpu_state_ctrl(struct kvm *kvm) in kvm_s390_user_cpu_state_ctrl() argument [all …]
|
/linux-6.12.1/arch/arm64/kvm/vgic/ |
D | vgic-init.c | 52 void kvm_vgic_early_init(struct kvm *kvm) in kvm_vgic_early_init() argument 54 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_early_init() 69 int kvm_vgic_create(struct kvm *kvm, u32 type) in kvm_vgic_create() argument 86 lockdep_assert_held(&kvm->lock); in kvm_vgic_create() 89 if (!lock_all_vcpus(kvm)) in kvm_vgic_create() 92 mutex_lock(&kvm->arch.config_lock); in kvm_vgic_create() 94 if (irqchip_in_kernel(kvm)) { in kvm_vgic_create() 99 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_vgic_create() 106 kvm->max_vcpus = VGIC_V2_MAX_CPUS; in kvm_vgic_create() 108 kvm->max_vcpus = VGIC_V3_MAX_CPUS; in kvm_vgic_create() [all …]
|
D | vgic.h | 105 return vcpu->kvm->arch.vgic.implementation_rev; in vgic_get_implementation_rev() 136 static inline int vgic_write_guest_lock(struct kvm *kvm, gpa_t gpa, in vgic_write_guest_lock() argument 139 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_write_guest_lock() 143 ret = kvm_write_guest_lock(kvm, gpa, data, len); in vgic_write_guest_lock() 182 struct vgic_irq *vgic_get_irq(struct kvm *kvm, struct kvm_vcpu *vcpu, 184 void vgic_put_irq(struct kvm *kvm, struct vgic_irq *irq); 188 bool vgic_queue_irq_unlock(struct kvm *kvm, struct vgic_irq *irq, 190 void vgic_kick_vcpus(struct kvm *kvm); 194 int vgic_check_iorange(struct kvm *kvm, phys_addr_t ioaddr, 211 int vgic_v2_map_resources(struct kvm *kvm); [all …]
|
/linux-6.12.1/arch/x86/kvm/ |
D | irq_comm.c | 31 struct kvm *kvm, int irq_source_id, int level, in kvm_set_pic_irq() argument 34 struct kvm_pic *pic = kvm->arch.vpic; in kvm_set_pic_irq() 39 struct kvm *kvm, int irq_source_id, int level, in kvm_set_ioapic_irq() argument 42 struct kvm_ioapic *ioapic = kvm->arch.vioapic; in kvm_set_ioapic_irq() 47 int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src, in kvm_irq_delivery_to_apic() argument 55 if (kvm_irq_delivery_to_apic_fast(kvm, src, irq, &r, dest_map)) in kvm_irq_delivery_to_apic() 66 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_irq_delivery_to_apic() 95 lowest = kvm_get_vcpu(kvm, idx); in kvm_irq_delivery_to_apic() 104 void kvm_set_msi_irq(struct kvm *kvm, struct kvm_kernel_irq_routing_entry *e, in kvm_set_msi_irq() argument 111 trace_kvm_msi_set_irq(msg.address_lo | (kvm->arch.x2apic_format ? in kvm_set_msi_irq() [all …]
|
/linux-6.12.1/arch/powerpc/kvm/ |
D | book3s_hv_uvmem.c | 233 struct kvm *kvm; member 248 int kvmppc_uvmem_slot_init(struct kvm *kvm, const struct kvm_memory_slot *slot) in kvmppc_uvmem_slot_init() argument 263 mutex_lock(&kvm->arch.uvmem_lock); in kvmppc_uvmem_slot_init() 264 list_add(&p->list, &kvm->arch.uvmem_pfns); in kvmppc_uvmem_slot_init() 265 mutex_unlock(&kvm->arch.uvmem_lock); in kvmppc_uvmem_slot_init() 273 void kvmppc_uvmem_slot_free(struct kvm *kvm, const struct kvm_memory_slot *slot) in kvmppc_uvmem_slot_free() argument 277 mutex_lock(&kvm->arch.uvmem_lock); in kvmppc_uvmem_slot_free() 278 list_for_each_entry_safe(p, next, &kvm->arch.uvmem_pfns, list) { in kvmppc_uvmem_slot_free() 286 mutex_unlock(&kvm->arch.uvmem_lock); in kvmppc_uvmem_slot_free() 289 static void kvmppc_mark_gfn(unsigned long gfn, struct kvm *kvm, in kvmppc_mark_gfn() argument [all …]
|
D | Makefile | 6 ccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm 8 include $(srctree)/virt/kvm/Makefile.kvm 16 kvm-e500-objs := \ 26 kvm-objs-$(CONFIG_KVM_E500V2) := $(kvm-e500-objs) 28 kvm-e500mc-objs := \ 38 kvm-objs-$(CONFIG_KVM_E500MC) := $(kvm-e500mc-objs) 40 kvm-pr-y := \ 53 kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \ 58 kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \ 62 kvm-hv-y += \ [all …]
|
D | book3s_64_mmu_hv.c | 47 static long kvmppc_virtmode_do_h_enter(struct kvm *kvm, unsigned long flags, 53 struct kvm *kvm; member 118 void kvmppc_set_hpt(struct kvm *kvm, struct kvm_hpt_info *info) in kvmppc_set_hpt() argument 120 atomic64_set(&kvm->arch.mmio_update, 0); in kvmppc_set_hpt() 121 kvm->arch.hpt = *info; in kvmppc_set_hpt() 122 kvm->arch.sdr1 = __pa(info->virt) | (info->order - 18); in kvmppc_set_hpt() 125 info->virt, (long)info->order, kvm->arch.lpid); in kvmppc_set_hpt() 128 int kvmppc_alloc_reset_hpt(struct kvm *kvm, int order) in kvmppc_alloc_reset_hpt() argument 133 mutex_lock(&kvm->arch.mmu_setup_lock); in kvmppc_alloc_reset_hpt() 134 if (kvm->arch.mmu_ready) { in kvmppc_alloc_reset_hpt() [all …]
|
D | book3s_64_mmu_radix.c | 102 int lpid = vcpu->kvm->arch.lpid; in kvmhv_copy_tofrom_guest_radix() 146 struct kvm *kvm = vcpu->kvm; in kvmppc_mmu_walk_radix_tree() local 180 ret = kvm_read_guest(kvm, addr, &rpte, sizeof(rpte)); in kvmppc_mmu_walk_radix_tree() 242 struct kvm *kvm = vcpu->kvm; in kvmppc_mmu_radix_translate_table() local 258 ret = kvm_read_guest(kvm, ptbl, &entry, sizeof(entry)); in kvmppc_mmu_radix_translate_table() 289 vcpu->kvm->arch.process_table, pid, &pte); in kvmppc_mmu_radix_xlate() 315 void kvmppc_radix_tlbie_page(struct kvm *kvm, unsigned long addr, in kvmppc_radix_tlbie_page() argument 353 static void kvmppc_radix_flush_pwc(struct kvm *kvm, u64 lpid) in kvmppc_radix_flush_pwc() argument 374 static unsigned long kvmppc_radix_update_pte(struct kvm *kvm, pte_t *ptep, in kvmppc_radix_update_pte() argument 381 static void kvmppc_radix_set_pte_at(struct kvm *kvm, unsigned long addr, in kvmppc_radix_set_pte_at() argument [all …]
|
/linux-6.12.1/arch/riscv/kvm/ |
D | aia_device.c | 15 static void unlock_vcpus(struct kvm *kvm, int vcpu_lock_idx) in unlock_vcpus() argument 20 tmp_vcpu = kvm_get_vcpu(kvm, vcpu_lock_idx); in unlock_vcpus() 25 static void unlock_all_vcpus(struct kvm *kvm) in unlock_all_vcpus() argument 27 unlock_vcpus(kvm, atomic_read(&kvm->online_vcpus) - 1); in unlock_all_vcpus() 30 static bool lock_all_vcpus(struct kvm *kvm) in lock_all_vcpus() argument 35 kvm_for_each_vcpu(c, tmp_vcpu, kvm) { in lock_all_vcpus() 37 unlock_vcpus(kvm, c - 1); in lock_all_vcpus() 49 struct kvm *kvm = dev->kvm; in aia_create() local 52 if (irqchip_in_kernel(kvm)) in aia_create() 56 if (!lock_all_vcpus(kvm)) in aia_create() [all …]
|
D | Makefile | 8 include $(srctree)/virt/kvm/Makefile.kvm 10 obj-$(CONFIG_KVM) += kvm.o 12 kvm-y += main.o 13 kvm-y += vm.o 14 kvm-y += vmid.o 15 kvm-y += tlb.o 16 kvm-y += mmu.o 17 kvm-y += vcpu.o 18 kvm-y += vcpu_exit.o 19 kvm-y += vcpu_fp.o [all …]
|
D | mmu.c | 97 static bool gstage_get_leaf_entry(struct kvm *kvm, gpa_t addr, in gstage_get_leaf_entry() argument 104 ptep = (pte_t *)kvm->arch.pgd; in gstage_get_leaf_entry() 126 static void gstage_remote_tlb_flush(struct kvm *kvm, u32 level, gpa_t addr) in gstage_remote_tlb_flush() argument 134 kvm_riscv_hfence_gvma_vmid_gpa(kvm, -1UL, 0, addr, BIT(order), order); in gstage_remote_tlb_flush() 137 static int gstage_set_pte(struct kvm *kvm, u32 level, in gstage_set_pte() argument 142 pte_t *next_ptep = (pte_t *)kvm->arch.pgd; in gstage_set_pte() 172 gstage_remote_tlb_flush(kvm, current_level, addr); in gstage_set_pte() 177 static int gstage_map_page(struct kvm *kvm, in gstage_map_page() argument 219 return gstage_set_pte(kvm, level, pcache, gpa, &new_pte); in gstage_map_page() 228 static void gstage_op_pte(struct kvm *kvm, gpa_t addr, in gstage_op_pte() argument [all …]
|
D | vm.c | 30 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) in kvm_arch_init_vm() argument 34 r = kvm_riscv_gstage_alloc_pgd(kvm); in kvm_arch_init_vm() 38 r = kvm_riscv_gstage_vmid_init(kvm); in kvm_arch_init_vm() 40 kvm_riscv_gstage_free_pgd(kvm); in kvm_arch_init_vm() 44 kvm_riscv_aia_init_vm(kvm); in kvm_arch_init_vm() 46 kvm_riscv_guest_timer_init(kvm); in kvm_arch_init_vm() 51 void kvm_arch_destroy_vm(struct kvm *kvm) in kvm_arch_destroy_vm() argument 53 kvm_destroy_vcpus(kvm); in kvm_arch_destroy_vm() 55 kvm_riscv_aia_destroy_vm(kvm); in kvm_arch_destroy_vm() 58 int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irql, in kvm_vm_ioctl_irq_line() argument [all …]
|
/linux-6.12.1/arch/arm64/kvm/ |
D | nested.c | 30 void kvm_init_nested(struct kvm *kvm) in kvm_init_nested() argument 32 kvm->arch.nested_mmus = NULL; in kvm_init_nested() 33 kvm->arch.nested_mmus_size = 0; in kvm_init_nested() 36 static int init_nested_s2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu) in init_nested_s2_mmu() argument 48 return kvm_init_stage2_mmu(kvm, mmu, kvm_get_pa_bits(kvm)); in init_nested_s2_mmu() 53 struct kvm *kvm = vcpu->kvm; in kvm_vcpu_init_nested() local 63 num_mmus = atomic_read(&kvm->online_vcpus) * S2_MMU_PER_VCPU; in kvm_vcpu_init_nested() 64 tmp = kvrealloc(kvm->arch.nested_mmus, in kvm_vcpu_init_nested() 65 size_mul(sizeof(*kvm->arch.nested_mmus), num_mmus), in kvm_vcpu_init_nested() 74 if (kvm->arch.nested_mmus != tmp) in kvm_vcpu_init_nested() [all …]
|
/linux-6.12.1/arch/loongarch/kvm/ |
D | vm.c | 25 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) in kvm_arch_init_vm() argument 30 kvm->arch.pgd = kvm_pgd_alloc(); in kvm_arch_init_vm() 31 if (!kvm->arch.pgd) in kvm_arch_init_vm() 34 kvm->arch.phyid_map = kvzalloc(sizeof(struct kvm_phyid_map), GFP_KERNEL_ACCOUNT); in kvm_arch_init_vm() 35 if (!kvm->arch.phyid_map) { in kvm_arch_init_vm() 36 free_page((unsigned long)kvm->arch.pgd); in kvm_arch_init_vm() 37 kvm->arch.pgd = NULL; in kvm_arch_init_vm() 40 spin_lock_init(&kvm->arch.phyid_map_lock); in kvm_arch_init_vm() 42 kvm_init_vmcs(kvm); in kvm_arch_init_vm() 45 kvm->arch.pv_features = BIT(KVM_FEATURE_IPI); in kvm_arch_init_vm() [all …]
|
D | mmu.c | 26 static inline void kvm_ptw_prepare(struct kvm *kvm, kvm_ptw_ctx *ctx) in kvm_ptw_prepare() argument 28 ctx->level = kvm->arch.root_level; in kvm_ptw_prepare() 30 ctx->invalid_ptes = kvm->arch.invalid_ptes; in kvm_ptw_prepare() 31 ctx->pte_shifts = kvm->arch.pte_shifts; in kvm_ptw_prepare() 34 ctx->opaque = kvm; in kvm_ptw_prepare() 90 struct kvm *kvm; in kvm_flush_pte() local 92 kvm = ctx->opaque; in kvm_flush_pte() 94 kvm->stat.hugepages--; in kvm_flush_pte() 96 kvm->stat.pages--; in kvm_flush_pte() 149 static kvm_pte_t *kvm_populate_gpa(struct kvm *kvm, in kvm_populate_gpa() argument [all …]
|