/Linux-v4.19/include/linux/ |
D | kvm_host.h | 174 int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, 176 void kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, 178 struct kvm_io_device *kvm_io_bus_get_dev(struct kvm *kvm, enum kvm_bus bus_idx, 219 struct kvm *kvm; member 336 struct kvm *kvm, int irq_source_id, int level, 397 struct kvm { struct 485 static inline struct kvm_io_bus *kvm_get_bus(struct kvm *kvm, enum kvm_bus idx) in kvm_get_bus() argument 487 return srcu_dereference_check(kvm->buses[idx], &kvm->srcu, in kvm_get_bus() 488 lockdep_is_held(&kvm->slots_lock) || in kvm_get_bus() 489 !refcount_read(&kvm->users_count)); in kvm_get_bus() [all …]
|
/Linux-v4.19/arch/x86/kvm/ |
D | irq_comm.c | 42 struct kvm *kvm, int irq_source_id, int level, in kvm_set_pic_irq() argument 45 struct kvm_pic *pic = kvm->arch.vpic; in kvm_set_pic_irq() 50 struct kvm *kvm, int irq_source_id, int level, in kvm_set_ioapic_irq() argument 53 struct kvm_ioapic *ioapic = kvm->arch.vioapic; in kvm_set_ioapic_irq() 58 int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src, in kvm_irq_delivery_to_apic() argument 72 if (kvm_irq_delivery_to_apic_fast(kvm, src, irq, &r, dest_map)) in kvm_irq_delivery_to_apic() 77 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_irq_delivery_to_apic() 106 lowest = kvm_get_vcpu(kvm, idx); in kvm_irq_delivery_to_apic() 115 void kvm_set_msi_irq(struct kvm *kvm, struct kvm_kernel_irq_routing_entry *e, in kvm_set_msi_irq() argument 118 trace_kvm_msi_set_irq(e->msi.address_lo | (kvm->arch.x2apic_format ? in kvm_set_msi_irq() [all …]
|
D | irq.h | 38 struct kvm; 66 struct kvm *kvm; member 76 int kvm_pic_init(struct kvm *kvm); 77 void kvm_pic_destroy(struct kvm *kvm); 78 int kvm_pic_read_irq(struct kvm *kvm); 81 static inline int pic_in_kernel(struct kvm *kvm) in pic_in_kernel() argument 83 int mode = kvm->arch.irqchip_mode; in pic_in_kernel() 90 static inline int irqchip_split(struct kvm *kvm) in irqchip_split() argument 92 int mode = kvm->arch.irqchip_mode; in irqchip_split() 99 static inline int irqchip_kernel(struct kvm *kvm) in irqchip_kernel() argument [all …]
|
/Linux-v4.19/virt/kvm/ |
D | eventfd.c | 52 struct kvm *kvm = irqfd->kvm; in irqfd_inject() local 55 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1, in irqfd_inject() 57 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0, in irqfd_inject() 60 kvm_set_irq(kvm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, in irqfd_inject() 73 struct kvm *kvm; in irqfd_resampler_ack() local 79 kvm = resampler->kvm; in irqfd_resampler_ack() 81 kvm_set_irq(kvm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, in irqfd_resampler_ack() 84 idx = srcu_read_lock(&kvm->irq_srcu); in irqfd_resampler_ack() 89 srcu_read_unlock(&kvm->irq_srcu, idx); in irqfd_resampler_ack() 96 struct kvm *kvm = resampler->kvm; in irqfd_resampler_shutdown() local [all …]
|
D | kvm_main.c | 139 static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm); 143 __weak int kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm, in kvm_arch_mmu_notifier_invalidate_range() argument 212 bool kvm_make_vcpus_request_mask(struct kvm *kvm, unsigned int req, in kvm_make_vcpus_request_mask() argument 221 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_make_vcpus_request_mask() 242 bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req) in kvm_make_all_cpus_request() argument 251 called = kvm_make_vcpus_request_mask(kvm, req, vcpu_bitmap, cpus); in kvm_make_all_cpus_request() 258 void kvm_flush_remote_tlbs(struct kvm *kvm) in kvm_flush_remote_tlbs() argument 264 long dirty_count = smp_load_acquire(&kvm->tlbs_dirty); in kvm_flush_remote_tlbs() 277 if (!kvm_arch_flush_remote_tlb(kvm) in kvm_flush_remote_tlbs() 278 || kvm_make_all_cpus_request(kvm, KVM_REQ_TLB_FLUSH)) in kvm_flush_remote_tlbs() [all …]
|
D | irqchip.c | 34 int kvm_irq_map_gsi(struct kvm *kvm, in kvm_irq_map_gsi() argument 41 irq_rt = srcu_dereference_check(kvm->irq_routing, &kvm->irq_srcu, in kvm_irq_map_gsi() 42 lockdep_is_held(&kvm->irq_lock)); in kvm_irq_map_gsi() 53 int kvm_irq_map_chip_pin(struct kvm *kvm, unsigned irqchip, unsigned pin) in kvm_irq_map_chip_pin() argument 57 irq_rt = srcu_dereference(kvm->irq_routing, &kvm->irq_srcu); in kvm_irq_map_chip_pin() 61 int kvm_send_userspace_msi(struct kvm *kvm, struct kvm_msi *msi) in kvm_send_userspace_msi() argument 65 if (!irqchip_in_kernel(kvm) || (msi->flags & ~KVM_MSI_VALID_DEVID)) in kvm_send_userspace_msi() 74 return kvm_set_msi(&route, kvm, KVM_USERSPACE_IRQ_SOURCE_ID, 1, false); in kvm_send_userspace_msi() 83 int kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level, in kvm_set_irq() argument 95 idx = srcu_read_lock(&kvm->irq_srcu); in kvm_set_irq() [all …]
|
D | coalesced_mmio.c | 54 ring = dev->kvm->coalesced_mmio_ring; in coalesced_mmio_has_room() 69 struct kvm_coalesced_mmio_ring *ring = dev->kvm->coalesced_mmio_ring; in coalesced_mmio_write() 74 spin_lock(&dev->kvm->ring_lock); in coalesced_mmio_write() 77 spin_unlock(&dev->kvm->ring_lock); in coalesced_mmio_write() 88 spin_unlock(&dev->kvm->ring_lock); in coalesced_mmio_write() 106 int kvm_coalesced_mmio_init(struct kvm *kvm) in kvm_coalesced_mmio_init() argument 117 kvm->coalesced_mmio_ring = page_address(page); in kvm_coalesced_mmio_init() 124 spin_lock_init(&kvm->ring_lock); in kvm_coalesced_mmio_init() 125 INIT_LIST_HEAD(&kvm->coalesced_zones); in kvm_coalesced_mmio_init() 131 void kvm_coalesced_mmio_free(struct kvm *kvm) in kvm_coalesced_mmio_free() argument [all …]
|
D | coalesced_mmio.h | 21 struct kvm *kvm; member 25 int kvm_coalesced_mmio_init(struct kvm *kvm); 26 void kvm_coalesced_mmio_free(struct kvm *kvm); 27 int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm, 29 int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm, 34 static inline int kvm_coalesced_mmio_init(struct kvm *kvm) { return 0; } in kvm_coalesced_mmio_init() argument 35 static inline void kvm_coalesced_mmio_free(struct kvm *kvm) { } in kvm_coalesced_mmio_free() argument
|
/Linux-v4.19/virt/kvm/arm/vgic/ |
D | vgic-init.c | 62 void kvm_vgic_early_init(struct kvm *kvm) in kvm_vgic_early_init() argument 64 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_early_init() 80 int kvm_vgic_create(struct kvm *kvm, u32 type) in kvm_vgic_create() argument 85 if (irqchip_in_kernel(kvm)) in kvm_vgic_create() 104 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_vgic_create() 110 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_vgic_create() 117 kvm->arch.max_vcpus = VGIC_V2_MAX_CPUS; in kvm_vgic_create() 119 kvm->arch.max_vcpus = VGIC_V3_MAX_CPUS; in kvm_vgic_create() 121 if (atomic_read(&kvm->online_vcpus) > kvm->arch.max_vcpus) { in kvm_vgic_create() 126 kvm->arch.vgic.in_kernel = true; in kvm_vgic_create() [all …]
|
D | vgic.h | 173 struct vgic_irq *vgic_get_irq(struct kvm *kvm, struct kvm_vcpu *vcpu, 175 void vgic_put_irq(struct kvm *kvm, struct vgic_irq *irq); 179 bool vgic_queue_irq_unlock(struct kvm *kvm, struct vgic_irq *irq, 181 void vgic_kick_vcpus(struct kvm *kvm); 183 int vgic_check_ioaddr(struct kvm *kvm, phys_addr_t *ioaddr, 200 int vgic_v2_map_resources(struct kvm *kvm); 201 int vgic_register_dist_iodev(struct kvm *kvm, gpa_t dist_base_address, 228 int vgic_v3_map_resources(struct kvm *kvm); 229 int vgic_v3_lpi_sync_pending_status(struct kvm *kvm, struct vgic_irq *irq); 230 int vgic_v3_save_pending_tables(struct kvm *kvm); [all …]
|
D | vgic-debug.c | 66 static void iter_init(struct kvm *kvm, struct vgic_state_iter *iter, in iter_init() argument 69 int nr_cpus = atomic_read(&kvm->online_vcpus); in iter_init() 74 iter->nr_spis = kvm->arch.vgic.nr_spis; in iter_init() 75 if (kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) { in iter_init() 76 iter->nr_lpis = vgic_copy_lpi_list(kvm, NULL, &iter->lpi_array); in iter_init() 96 struct kvm *kvm = (struct kvm *)s->private; in vgic_debug_start() local 99 mutex_lock(&kvm->lock); in vgic_debug_start() 100 iter = kvm->arch.vgic.iter; in vgic_debug_start() 112 iter_init(kvm, iter, *pos); in vgic_debug_start() 113 kvm->arch.vgic.iter = iter; in vgic_debug_start() [all …]
|
D | vgic-its.c | 40 static int update_lpi_config(struct kvm *kvm, struct vgic_irq *irq, 50 static struct vgic_irq *vgic_add_lpi(struct kvm *kvm, u32 intid, in vgic_add_lpi() argument 53 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_add_lpi() 54 struct vgic_irq *irq = vgic_get_irq(kvm, NULL, intid), *oldirq; in vgic_add_lpi() 111 ret = update_lpi_config(kvm, irq, NULL, false); in vgic_add_lpi() 115 ret = vgic_v3_lpi_sync_pending_status(kvm, irq); in vgic_add_lpi() 283 static int update_lpi_config(struct kvm *kvm, struct vgic_irq *irq, in update_lpi_config() argument 286 u64 propbase = GICR_PROPBASER_ADDRESS(kvm->arch.vgic.propbaser); in update_lpi_config() 291 ret = kvm_read_guest_lock(kvm, propbase + irq->intid - GIC_LPI_OFFSET, in update_lpi_config() 304 vgic_queue_irq_unlock(kvm, irq, flags); in update_lpi_config() [all …]
|
D | vgic-kvm-device.c | 25 int vgic_check_ioaddr(struct kvm *kvm, phys_addr_t *ioaddr, in vgic_check_ioaddr() argument 40 static int vgic_check_type(struct kvm *kvm, int type_needed) in vgic_check_type() argument 42 if (kvm->arch.vgic.vgic_model != type_needed) in vgic_check_type() 64 int kvm_vgic_addr(struct kvm *kvm, unsigned long type, u64 *addr, bool write) in kvm_vgic_addr() argument 67 struct vgic_dist *vgic = &kvm->arch.vgic; in kvm_vgic_addr() 71 mutex_lock(&kvm->lock); in kvm_vgic_addr() 74 r = vgic_check_type(kvm, KVM_DEV_TYPE_ARM_VGIC_V2); in kvm_vgic_addr() 79 r = vgic_check_type(kvm, KVM_DEV_TYPE_ARM_VGIC_V2); in kvm_vgic_addr() 84 r = vgic_check_type(kvm, KVM_DEV_TYPE_ARM_VGIC_V3); in kvm_vgic_addr() 91 r = vgic_check_type(kvm, KVM_DEV_TYPE_ARM_VGIC_V3); in kvm_vgic_addr() [all …]
|
/Linux-v4.19/tools/perf/ |
D | builtin-kvm.c | 96 static const char *get_exit_reason(struct perf_kvm_stat *kvm, in get_exit_reason() argument 107 (unsigned long long)exit_code, kvm->exit_reasons_isa); in get_exit_reason() 111 void exit_event_decode_key(struct perf_kvm_stat *kvm, in exit_event_decode_key() argument 115 const char *exit_reason = get_exit_reason(kvm, key->exit_reasons, in exit_event_decode_key() 121 static bool register_kvm_events_ops(struct perf_kvm_stat *kvm) in register_kvm_events_ops() argument 126 if (!strcmp(events_ops->name, kvm->report_event)) { in register_kvm_events_ops() 127 kvm->events_ops = events_ops->ops; in register_kvm_events_ops() 142 static void init_kvm_event_record(struct perf_kvm_stat *kvm) in init_kvm_event_record() argument 147 INIT_LIST_HEAD(&kvm->kvm_events_cache[i]); in init_kvm_event_record() 219 static struct kvm_event *find_create_kvm_event(struct perf_kvm_stat *kvm, in find_create_kvm_event() argument [all …]
|
/Linux-v4.19/arch/powerpc/kvm/ |
D | Makefile | 8 ccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm 9 KVM := ../../../virt/kvm 26 kvm-e500-objs := \ 36 kvm-objs-$(CONFIG_KVM_E500V2) := $(kvm-e500-objs) 38 kvm-e500mc-objs := \ 48 kvm-objs-$(CONFIG_KVM_E500MC) := $(kvm-e500mc-objs) 50 kvm-book3s_64-builtin-objs-$(CONFIG_SPAPR_TCE_IOMMU) := \ 53 kvm-pr-y := \ 66 kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \ 70 kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \ [all …]
|
D | book3s_64_mmu_hv.c | 56 static long kvmppc_virtmode_do_h_enter(struct kvm *kvm, unsigned long flags, 62 struct kvm *kvm; member 127 void kvmppc_set_hpt(struct kvm *kvm, struct kvm_hpt_info *info) in kvmppc_set_hpt() argument 129 atomic64_set(&kvm->arch.mmio_update, 0); in kvmppc_set_hpt() 130 kvm->arch.hpt = *info; in kvmppc_set_hpt() 131 kvm->arch.sdr1 = __pa(info->virt) | (info->order - 18); in kvmppc_set_hpt() 134 info->virt, (long)info->order, kvm->arch.lpid); in kvmppc_set_hpt() 137 long kvmppc_alloc_reset_hpt(struct kvm *kvm, int order) in kvmppc_alloc_reset_hpt() argument 142 mutex_lock(&kvm->lock); in kvmppc_alloc_reset_hpt() 143 if (kvm->arch.mmu_ready) { in kvmppc_alloc_reset_hpt() [all …]
|
D | book3s_64_mmu_radix.c | 32 struct kvm *kvm = vcpu->kvm; in kvmppc_mmu_radix_xlate() local 53 proc_tbl_size = 1 << ((kvm->arch.process_table & PRTS_MASK) + 12); in kvmppc_mmu_radix_xlate() 58 ptbl = (kvm->arch.process_table & PRTB_MASK) + (pid * 16); in kvmppc_mmu_radix_xlate() 59 ret = kvm_read_guest(kvm, ptbl, &prte, sizeof(prte)); in kvmppc_mmu_radix_xlate() 85 ret = kvm_read_guest(kvm, root + index * 8, in kvmppc_mmu_radix_xlate() 139 static void kvmppc_radix_tlbie_page(struct kvm *kvm, unsigned long addr, in kvmppc_radix_tlbie_page() argument 148 radix__flush_tlb_lpid_page(kvm->arch.lpid, addr, psize); in kvmppc_radix_tlbie_page() 151 static void kvmppc_radix_flush_pwc(struct kvm *kvm) in kvmppc_radix_flush_pwc() argument 153 radix__flush_pwc_lpid(kvm->arch.lpid); in kvmppc_radix_flush_pwc() 156 static unsigned long kvmppc_radix_update_pte(struct kvm *kvm, pte_t *ptep, in kvmppc_radix_update_pte() argument [all …]
|
/Linux-v4.19/arch/arm64/kvm/hyp/ |
D | tlb.c | 22 static void __hyp_text __tlb_switch_to_guest_vhe(struct kvm *kvm) in __tlb_switch_to_guest_vhe() argument 33 write_sysreg(kvm->arch.vttbr, vttbr_el2); in __tlb_switch_to_guest_vhe() 40 static void __hyp_text __tlb_switch_to_guest_nvhe(struct kvm *kvm) in __tlb_switch_to_guest_nvhe() argument 42 write_sysreg(kvm->arch.vttbr, vttbr_el2); in __tlb_switch_to_guest_nvhe() 51 static void __hyp_text __tlb_switch_to_host_vhe(struct kvm *kvm) in __tlb_switch_to_host_vhe() argument 61 static void __hyp_text __tlb_switch_to_host_nvhe(struct kvm *kvm) in __tlb_switch_to_host_nvhe() argument 71 void __hyp_text __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) in __kvm_tlb_flush_vmid_ipa() argument 76 kvm = kern_hyp_va(kvm); in __kvm_tlb_flush_vmid_ipa() 77 __tlb_switch_to_guest()(kvm); in __kvm_tlb_flush_vmid_ipa() 120 __tlb_switch_to_host()(kvm); in __kvm_tlb_flush_vmid_ipa() [all …]
|
/Linux-v4.19/arch/s390/kvm/ |
D | kvm-s390.c | 60 #define VM_STAT(x) offsetof(struct kvm, stat.x), KVM_STAT_VM 258 struct kvm *kvm; in kvm_clock_sync() local 263 list_for_each_entry(kvm, &vm_list, vm_list) { in kvm_clock_sync() 264 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_clock_sync() 267 kvm->arch.epoch = vcpu->arch.sie_block->epoch; in kvm_clock_sync() 268 kvm->arch.epdx = vcpu->arch.sie_block->epdx; in kvm_clock_sync() 448 int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) in kvm_vm_ioctl_check_extension() argument 484 if (hpage && !kvm_is_ucontrol(kvm)) in kvm_vm_ioctl_check_extension() 522 static void kvm_s390_sync_dirty_log(struct kvm *kvm, in kvm_s390_sync_dirty_log() argument 528 struct gmap *gmap = kvm->arch.gmap; in kvm_s390_sync_dirty_log() [all …]
|
D | kvm-s390.h | 42 debug_sprintf_event(d_vcpu->kvm->arch.dbf, d_loglevel, \ 70 return test_bit(vcpu->vcpu_id, vcpu->kvm->arch.float_int.idle_mask); in is_vcpu_idle() 73 static inline int kvm_is_ucontrol(struct kvm *kvm) in kvm_is_ucontrol() argument 76 if (kvm->arch.gmap) in kvm_is_ucontrol() 170 static inline int test_kvm_facility(struct kvm *kvm, unsigned long nr) in test_kvm_facility() argument 172 return __test_facility(nr, kvm->arch.model.fac_mask) && in test_kvm_facility() 173 __test_facility(nr, kvm->arch.model.fac_list); in test_kvm_facility() 187 static inline int test_kvm_cpu_feat(struct kvm *kvm, unsigned long nr) in test_kvm_cpu_feat() argument 190 return test_bit_inv(nr, kvm->arch.cpu_feat); in test_kvm_cpu_feat() 194 static inline int kvm_s390_user_cpu_state_ctrl(struct kvm *kvm) in kvm_s390_user_cpu_state_ctrl() argument [all …]
|
/Linux-v4.19/arch/powerpc/include/asm/ |
D | kvm_ppc.h | 131 extern struct kvm_vcpu *kvmppc_core_vcpu_create(struct kvm *kvm, 172 extern void kvmppc_set_hpt(struct kvm *kvm, struct kvm_hpt_info *info); 173 extern long kvmppc_alloc_reset_hpt(struct kvm *kvm, int order); 175 extern void kvmppc_rmap_reset(struct kvm *kvm); 176 extern long kvmppc_prepare_vrma(struct kvm *kvm, 181 extern long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd, 183 extern void kvm_spapr_tce_release_iommu_group(struct kvm *kvm, 185 extern int kvmppc_switch_mmu_to_hpt(struct kvm *kvm); 186 extern int kvmppc_switch_mmu_to_radix(struct kvm *kvm); 187 extern void kvmppc_setup_partition_table(struct kvm *kvm); [all …]
|
/Linux-v4.19/arch/arm64/kvm/ |
D | Makefile | 6 ccflags-y += -Iarch/arm64/kvm -Ivirt/kvm/arm/vgic 10 KVM=../../../virt/kvm 12 obj-$(CONFIG_KVM_ARM_HOST) += kvm.o 15 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o $(KVM)/vfi… 16 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/arm.o $(KVM)/arm/mmu.o $(KVM)/arm/mmio.o 17 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/psci.o $(KVM)/arm/perf.o 19 kvm-$(CONFIG_KVM_ARM_HOST) += inject_fault.o regmap.o va_layout.o 20 kvm-$(CONFIG_KVM_ARM_HOST) += hyp.o hyp-init.o handle_exit.o 21 kvm-$(CONFIG_KVM_ARM_HOST) += guest.o debug.o reset.o sys_regs.o sys_regs_generic_v8.o 22 kvm-$(CONFIG_KVM_ARM_HOST) += vgic-sys-reg-v3.o fpsimd.o [all …]
|
/Linux-v4.19/virt/kvm/arm/ |
D | mmu.c | 65 void kvm_flush_remote_tlbs(struct kvm *kvm) in kvm_flush_remote_tlbs() argument 67 kvm_call_hyp(__kvm_tlb_flush_vmid, kvm); in kvm_flush_remote_tlbs() 70 static void kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) in kvm_tlb_flush_vmid_ipa() argument 72 kvm_call_hyp(__kvm_tlb_flush_vmid_ipa, kvm, ipa); in kvm_tlb_flush_vmid_ipa() 109 static void stage2_dissolve_pmd(struct kvm *kvm, phys_addr_t addr, pmd_t *pmd) in stage2_dissolve_pmd() argument 115 kvm_tlb_flush_vmid_ipa(kvm, addr); in stage2_dissolve_pmd() 151 static void clear_stage2_pgd_entry(struct kvm *kvm, pgd_t *pgd, phys_addr_t addr) in clear_stage2_pgd_entry() argument 155 kvm_tlb_flush_vmid_ipa(kvm, addr); in clear_stage2_pgd_entry() 160 static void clear_stage2_pud_entry(struct kvm *kvm, pud_t *pud, phys_addr_t addr) in clear_stage2_pud_entry() argument 165 kvm_tlb_flush_vmid_ipa(kvm, addr); in clear_stage2_pud_entry() [all …]
|
D | arm.c | 119 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) in kvm_arch_init_vm() argument 126 kvm->arch.last_vcpu_ran = alloc_percpu(typeof(*kvm->arch.last_vcpu_ran)); in kvm_arch_init_vm() 127 if (!kvm->arch.last_vcpu_ran) in kvm_arch_init_vm() 131 *per_cpu_ptr(kvm->arch.last_vcpu_ran, cpu) = -1; in kvm_arch_init_vm() 133 ret = kvm_alloc_stage2_pgd(kvm); in kvm_arch_init_vm() 137 ret = create_hyp_mappings(kvm, kvm + 1, PAGE_HYP); in kvm_arch_init_vm() 141 kvm_vgic_early_init(kvm); in kvm_arch_init_vm() 144 kvm->arch.vmid_gen = 0; in kvm_arch_init_vm() 147 kvm->arch.max_vcpus = vgic_present ? in kvm_arch_init_vm() 152 kvm_free_stage2_pgd(kvm); in kvm_arch_init_vm() [all …]
|
/Linux-v4.19/arch/x86/include/asm/ |
D | kvm_page_track.h | 45 void (*track_flush_slot)(struct kvm *kvm, struct kvm_memory_slot *slot, 49 void kvm_page_track_init(struct kvm *kvm); 50 void kvm_page_track_cleanup(struct kvm *kvm); 57 void kvm_slot_page_track_add_page(struct kvm *kvm, 60 void kvm_slot_page_track_remove_page(struct kvm *kvm, 67 kvm_page_track_register_notifier(struct kvm *kvm, 70 kvm_page_track_unregister_notifier(struct kvm *kvm, 74 void kvm_page_track_flush_slot(struct kvm *kvm, struct kvm_memory_slot *slot);
|