| /linux/arch/powerpc/include/asm/ |
| H A 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/arch/x86/kvm/mmu/ |
| H A 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 …]
|
| H A 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_roots(kvm, KVM_VALID_ROOTS); in kvm_mmu_uninit_tdp_mmu() 41 kvm_tdp_mmu_zap_invalidated_roots(kvm, false); in kvm_mmu_uninit_tdp_mmu() 44 KVM_MMU_WARN_ON(atomic64_read(&kvm->arch.tdp_mmu_pages)); in kvm_mmu_uninit_tdp_mmu() [all …]
|
| H A 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 …]
|
| H A 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); 30 static inline enum kvm_tdp_mmu_root_types kvm_gfn_range_filter_to_root_types(struct kvm *kvm, in kvm_gfn_range_filter_to_root_types() argument 35 if (!kvm_has_mirrored_tdp(kvm)) in kvm_gfn_range_filter_to_root_types() 51 if (unlikely(!kvm_is_addr_direct(vcpu->kvm, fault->addr))) in tdp_mmu_get_root_for_fault() 66 bool kvm_tdp_mmu_zap_leafs(struct kvm *kvm, gfn_t start, gfn_t end, bool flush); 67 bool kvm_tdp_mmu_zap_possible_nx_huge_page(struct kvm *kvm, 69 void kvm_tdp_mmu_zap_all(struct kvm *kvm); 70 void kvm_tdp_mmu_invalidate_roots(struct kvm *kvm, [all …]
|
| H A D | mmu.c | 187 static int mmu_page_zap_pte(struct kvm *kvm, struct kvm_mmu_page *sp, 293 static void kvm_flush_remote_tlbs_sptep(struct kvm *kvm, u64 *sptep) in kvm_flush_remote_tlbs_sptep() argument 298 kvm_flush_remote_tlbs_gfn(kvm, gfn, sp->role.level); in kvm_flush_remote_tlbs_sptep() 531 static u64 mmu_spte_clear_track_bits(struct kvm *kvm, u64 *sptep) in mmu_spte_clear_track_bits() argument 545 kvm_update_page_stats(kvm, level, -1); in mmu_spte_clear_track_bits() 612 if (kvm_has_mirrored_tdp(vcpu->kvm)) { in mmu_topup_memory_caches() 725 static bool kvm_gfn_is_lpage_allowed(struct kvm *kvm, in kvm_gfn_is_lpage_allowed() argument 736 if (kvm_arch_nr_memslot_as_ids(kvm) > 1) { in kvm_gfn_is_lpage_allowed() 737 other_slot = __gfn_to_memslot(__kvm_memslots(kvm, slot->as_id ^ 1), gfn); in kvm_gfn_is_lpage_allowed() 778 static void account_shadowed(struct kvm *kvm, struct kvm_mmu_page *sp) in account_shadowed() argument [all …]
|
| /linux/arch/loongarch/kvm/ |
| H A D | vm.c | 28 static void kvm_vm_init_features(struct kvm *kvm) in kvm_vm_init_features() argument 33 kvm->arch.kvm_features |= BIT(KVM_LOONGARCH_VM_FEAT_LSX); in kvm_vm_init_features() 35 kvm->arch.kvm_features |= BIT(KVM_LOONGARCH_VM_FEAT_LASX); in kvm_vm_init_features() 37 kvm->arch.kvm_features |= BIT(KVM_LOONGARCH_VM_FEAT_X86BT); in kvm_vm_init_features() 39 kvm->arch.kvm_features |= BIT(KVM_LOONGARCH_VM_FEAT_ARMBT); in kvm_vm_init_features() 41 kvm->arch.kvm_features |= BIT(KVM_LOONGARCH_VM_FEAT_MIPSBT); in kvm_vm_init_features() 43 kvm->arch.kvm_features |= BIT(KVM_LOONGARCH_VM_FEAT_PTW); in kvm_vm_init_features() 45 kvm->arch.kvm_features |= BIT(KVM_LOONGARCH_VM_FEAT_MSGINT); in kvm_vm_init_features() 49 kvm->arch.kvm_features |= BIT(KVM_LOONGARCH_VM_FEAT_PMU); in kvm_vm_init_features() 52 kvm->arch.pv_features |= BIT(KVM_FEATURE_IPI); in kvm_vm_init_features() [all …]
|
| H A 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 …]
|
| /linux/virt/kvm/ |
| H A D | eventfd.c | 37 kvm_arch_irqfd_allowed(struct kvm *kvm, struct kvm_irqfd *args) in kvm_arch_irqfd_allowed() argument 47 struct kvm *kvm = irqfd->kvm; in irqfd_inject() local 50 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1, in irqfd_inject() 52 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0, in irqfd_inject() 55 kvm_set_irq(kvm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, in irqfd_inject() 64 srcu_read_lock_held(&resampler->kvm->irq_srcu)) in irqfd_resampler_notify() 77 struct kvm *kvm; in irqfd_resampler_ack() local 82 kvm = resampler->kvm; in irqfd_resampler_ack() 84 kvm_set_irq(kvm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, in irqfd_resampler_ack() 87 idx = srcu_read_lock(&kvm->irq_srcu); in irqfd_resampler_ack() [all …]
|
| H A D | kvm_main.c | 151 static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm); 157 __weak void kvm_arch_guest_memory_reclaimed(struct kvm *kvm) in kvm_arch_guest_memory_reclaimed() argument 244 bool kvm_make_vcpus_request_mask(struct kvm *kvm, unsigned int req, in kvm_make_vcpus_request_mask() argument 258 vcpu = kvm_get_vcpu(kvm, i); in kvm_make_vcpus_request_mask() 270 bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req) in kvm_make_all_cpus_request() argument 283 kvm_for_each_vcpu(i, vcpu, kvm) in kvm_make_all_cpus_request() 293 void kvm_flush_remote_tlbs(struct kvm *kvm) in kvm_flush_remote_tlbs() argument 295 ++kvm->stat.generic.remote_tlb_flush_requests; in kvm_flush_remote_tlbs() 308 if (!kvm_arch_flush_remote_tlbs(kvm) in kvm_flush_remote_tlbs() 309 || kvm_make_all_cpus_request(kvm, KVM_REQ_TLB_FLUSH)) in kvm_flush_remote_tlbs() [all …]
|
| H A D | kvm_mm.h | 6 #include <linux/kvm.h> 17 #define KVM_MMU_LOCK_INIT(kvm) rwlock_init(&(kvm)->mmu_lock) 18 #define KVM_MMU_LOCK(kvm) write_lock(&(kvm)->mmu_lock) argument 19 #define KVM_MMU_UNLOCK(kvm) write_unlock(&(kvm)->mmu_lock) argument 21 #define KVM_MMU_LOCK_INIT(kvm) spin_lock_init(&(kvm)->mmu_lock) 22 #define KVM_MMU_LOCK(kvm) spin_loc 14 KVM_MMU_LOCK_INIT(kvm) global() argument 15 KVM_MMU_LOCK(kvm) global() argument 16 KVM_MMU_UNLOCK(kvm) global() argument 20 KVM_MMU_UNLOCK(kvm) global() argument 63 gfn_to_pfn_cache_invalidate_start(struct kvm * kvm,unsigned long start,unsigned long end) gfn_to_pfn_cache_invalidate_start() argument 83 kvm_gmem_bind(struct kvm * kvm,struct kvm_memory_slot * slot,unsigned int fd,loff_t offset) kvm_gmem_bind() argument [all...] |
| H A D | irqchip.c | 21 int kvm_irq_map_gsi(struct kvm *kvm, in kvm_irq_map_gsi() argument 28 irq_rt = srcu_dereference_check(kvm->irq_routing, &kvm->irq_srcu, in kvm_irq_map_gsi() 29 lockdep_is_held(&kvm->irq_lock)); in kvm_irq_map_gsi() 40 int kvm_irq_map_chip_pin(struct kvm *kvm, unsigned irqchip, unsigned pin) in kvm_irq_map_chip_pin() argument 44 irq_rt = srcu_dereference(kvm->irq_routing, &kvm->irq_srcu); in kvm_irq_map_chip_pin() 48 int kvm_send_userspace_msi(struct kvm *kvm, struct kvm_msi *msi) in kvm_send_userspace_msi() argument 52 if (!kvm_arch_irqchip_in_kernel(kvm) || (msi->flags & ~KVM_MSI_VALID_DEVID)) in kvm_send_userspace_msi() 61 return kvm_set_msi(&route, kvm, KVM_USERSPACE_IRQ_SOURCE_ID, 1, false); in kvm_send_userspace_msi() 70 int kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level, in kvm_set_irq() argument 82 idx = srcu_read_lock(&kvm->irq_srcu); in kvm_set_irq() [all …]
|
| /linux/arch/powerpc/kvm/ |
| H A 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 …]
|
| H A 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 …]
|
| H A 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 …]
|
| H A 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 …]
|
| /linux/arch/riscv/kvm/ |
| H A D | vm.c | 31 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) in kvm_arch_init_vm() argument 35 r = kvm_riscv_mmu_alloc_pgd(kvm); in kvm_arch_init_vm() 39 r = kvm_riscv_gstage_vmid_init(kvm); in kvm_arch_init_vm() 41 kvm_riscv_mmu_free_pgd(kvm); in kvm_arch_init_vm() 45 kvm_riscv_aia_init_vm(kvm); in kvm_arch_init_vm() 47 kvm_riscv_guest_timer_init(kvm); in kvm_arch_init_vm() 52 void kvm_arch_destroy_vm(struct kvm *kvm) in kvm_arch_destroy_vm() argument 54 kvm_destroy_vcpus(kvm); in kvm_arch_destroy_vm() 56 kvm_riscv_aia_destroy_vm(kvm); in kvm_arch_destroy_vm() 59 int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irql, in kvm_vm_ioctl_irq_line() argument [all …]
|
| H A D | mmu.c | 19 static void mmu_wp_memory_region(struct kvm *kvm, int slot) in mmu_wp_memory_region() argument 21 struct kvm_memslots *slots = kvm_memslots(kvm); in mmu_wp_memory_region() 28 kvm_riscv_gstage_init(&gstage, kvm); in mmu_wp_memory_region() 30 write_lock(&kvm->mmu_lock); in mmu_wp_memory_region() 32 write_unlock(&kvm->mmu_lock); in mmu_wp_memory_region() 34 kvm_flush_remote_tlbs_memslot(kvm, memslot); in mmu_wp_memory_region() 37 int kvm_riscv_mmu_ioremap(struct kvm *kvm, gpa_t gpa, phys_addr_t hpa, in kvm_riscv_mmu_ioremap() argument 44 unsigned long pgd_levels = kvm->arch.pgd_levels; in kvm_riscv_mmu_ioremap() 52 kvm_riscv_gstage_init(&gstage, kvm); in kvm_riscv_mmu_ioremap() 71 write_lock(&kvm->mmu_lock); in kvm_riscv_mmu_ioremap() [all …]
|
| /linux/arch/x86/kvm/ |
| H A D | irq.h | 27 struct kvm; 55 struct kvm *kvm; member 64 int kvm_pic_init(struct kvm *kvm); 65 void kvm_pic_destroy(struct kvm *kvm); 66 int kvm_pic_read_irq(struct kvm *kvm); 68 int kvm_pic_set_irq(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, 71 int kvm_setup_default_ioapic_and_pic_routing(struct kvm *kvm); 73 int kvm_vm_ioctl_get_irqchip(struct kvm *kvm, struct kvm_irqchip *chip); 74 int kvm_vm_ioctl_set_irqchip(struct kvm *kvm, struct kvm_irqchip *chip); 76 static inline int irqchip_full(struct kvm *kvm) in irqchip_full() argument [all …]
|
| H A D | irq.c | 82 if (pic_in_kernel(v->kvm)) in kvm_cpu_has_extint() 83 return v->kvm->arch.vpic->output; in kvm_cpu_has_extint() 86 WARN_ON_ONCE(!irqchip_split(v->kvm)); in kvm_cpu_has_extint() 140 return v->kvm->arch.xen.upcall_vector; in kvm_cpu_get_extint() 144 if (pic_in_kernel(v->kvm)) in kvm_cpu_get_extint() 145 return kvm_pic_read_irq(v->kvm); /* PIC */ in kvm_cpu_get_extint() 148 WARN_ON_ONCE(!irqchip_split(v->kvm)); in kvm_cpu_get_extint() 186 bool kvm_arch_irqfd_allowed(struct kvm *kvm, struct kvm_irqfd *args) in kvm_arch_irqfd_allowed() argument 190 return resample ? irqchip_full(kvm) : irqchip_in_kernel(kvm); in kvm_arch_irqfd_allowed() 193 bool kvm_arch_irqchip_in_kernel(struct kvm *kvm) in kvm_arch_irqchip_in_kernel() argument [all …]
|
| /linux/arch/arm64/kvm/ |
| H A D | pkvm.c | 88 static void __pkvm_destroy_hyp_vm(struct kvm *kvm) in __pkvm_destroy_hyp_vm() argument 90 if (pkvm_hyp_vm_is_created(kvm)) { in __pkvm_destroy_hyp_vm() 92 kvm->arch.pkvm.handle)); in __pkvm_destroy_hyp_vm() 93 } else if (kvm->arch.pkvm.handle) { in __pkvm_destroy_hyp_vm() 98 kvm_call_hyp_nvhe(__pkvm_unreserve_vm, kvm->arch.pkvm.handle); in __pkvm_destroy_hyp_vm() 101 kvm->arch.pkvm.handle = 0; in __pkvm_destroy_hyp_vm() 102 kvm->arch.pkvm.is_created = false; in __pkvm_destroy_hyp_vm() 103 free_hyp_memcache(&kvm->arch.pkvm.teardown_mc); in __pkvm_destroy_hyp_vm() 104 free_hyp_memcache(&kvm->arch.pkvm.stage2_teardown_mc); in __pkvm_destroy_hyp_vm() 110 pkvm_handle_t handle = vcpu->kvm->arch.pkvm.handle; in __pkvm_create_hyp_vcpu() [all …]
|
| H A D | nested.c | 47 void kvm_init_nested(struct kvm *kvm) in kvm_init_nested() argument 49 kvm->arch.nested_mmus = NULL; in kvm_init_nested() 50 kvm->arch.nested_mmus_size = 0; in kvm_init_nested() 51 atomic_set(&kvm->arch.vncr_map_count, 0); in kvm_init_nested() 54 static int init_nested_s2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu) in init_nested_s2_mmu() argument 66 return kvm_init_stage2_mmu(kvm, mmu, kvm_get_pa_bits(kvm)); in init_nested_s2_mmu() 71 struct kvm *kvm = vcpu->kvm; in kvm_vcpu_init_nested() local 75 if (test_bit(KVM_ARM_VCPU_HAS_EL2_E2H0, kvm->arch.vcpu_features) && in kvm_vcpu_init_nested() 92 num_mmus = atomic_read(&kvm->online_vcpus) * S2_MMU_PER_VCPU; in kvm_vcpu_init_nested() 94 if (num_mmus > kvm->arch.nested_mmus_size) { in kvm_vcpu_init_nested() [all …]
|
| /linux/tools/perf/ |
| H A D | builtin-kvm.c | 27 #include "util/kvm-stat.h" 516 static void print_result(struct perf_kvm_stat *kvm); 585 static void kvm_display(struct perf_kvm_stat *kvm) in kvm_display() 588 print_result(kvm); in kvm_display() 595 static void kvm_display(struct perf_kvm_stat *kvm) in kvm_display() 598 print_result(kvm); 614 filename = "perf.data.kvm"; in get_filename_for_perf_kvm() 621 static bool register_kvm_events_ops(struct perf_kvm_stat *kvm, uint16_t e_machine) in register_kvm_events_ops() 626 if (!strcmp(events_ops->name, kvm->report_event)) { in register_kvm_events_ops() 627 kvm in register_kvm_events_ops() 583 kvm_display(struct perf_kvm_stat * kvm) kvm_display() argument 593 kvm_display(struct perf_kvm_stat * kvm) kvm_display() argument 619 register_kvm_events_ops(struct perf_kvm_stat * kvm,uint16_t e_machine) register_kvm_events_ops() argument 721 find_create_kvm_event(struct perf_kvm_stat * kvm,struct event_key * key,struct perf_sample * sample) find_create_kvm_event() argument 755 handle_begin_event(struct perf_kvm_stat * kvm,struct vcpu_event_record * vcpu_record,struct event_key * key,struct perf_sample * sample) handle_begin_event() argument 788 update_kvm_event(struct perf_kvm_stat * kvm,struct kvm_event * event,int vcpu_id,u64 time_diff) update_kvm_event() argument 808 is_child_event(struct perf_kvm_stat * kvm,struct evsel * evsel,struct perf_sample * sample,struct event_key * key) is_child_event() argument 830 handle_child_event(struct perf_kvm_stat * kvm,struct vcpu_event_record * vcpu_record,struct event_key * key,struct perf_sample * sample) handle_child_event() argument 856 handle_end_event(struct perf_kvm_stat * kvm,struct vcpu_event_record * vcpu_record,struct event_key * key,struct perf_sample * sample) handle_end_event() argument 942 handle_kvm_event(struct perf_kvm_stat * kvm,struct thread * thread,struct evsel * evsel,struct perf_sample * sample) handle_kvm_event() argument 972 is_valid_key(struct perf_kvm_stat * kvm) is_valid_key() argument 1006 sort_result(struct perf_kvm_stat * kvm) sort_result() argument 1019 print_vcpu_info(struct perf_kvm_stat * kvm) print_vcpu_info() argument 1054 print_result(struct perf_kvm_stat * kvm) print_result() argument 1117 struct perf_kvm_stat *kvm = container_of(tool, struct perf_kvm_stat, tool); process_lost_event() local 1124 skip_sample(struct perf_kvm_stat * kvm,struct perf_sample * sample) skip_sample() argument 1141 struct perf_kvm_stat *kvm = container_of(tool, struct perf_kvm_stat, process_sample_event() local 1166 cpu_isa_config(struct perf_kvm_stat * kvm) cpu_isa_config() argument 1214 perf_kvm__mmap_read_idx(struct perf_kvm_stat * kvm,int idx,u64 * mmap_time) perf_kvm__mmap_read_idx() argument 1264 perf_kvm__mmap_read(struct perf_kvm_stat * kvm) perf_kvm__mmap_read() argument 1314 perf_kvm__timerfd_create(struct perf_kvm_stat * kvm) perf_kvm__timerfd_create() argument 1341 perf_kvm__handle_timerfd(struct perf_kvm_stat * kvm) perf_kvm__handle_timerfd() argument 1408 kvm_events_live_report(struct perf_kvm_stat * kvm) kvm_events_live_report() argument 1488 kvm_live_open_events(struct perf_kvm_stat * kvm) kvm_live_open_events() argument 1549 read_events(struct perf_kvm_stat * kvm) read_events() argument 1598 parse_target_str(struct perf_kvm_stat * kvm) parse_target_str() argument 1611 kvm_events_report_vcpu(struct perf_kvm_stat * kvm) kvm_events_report_vcpu() argument 1649 kvm_events_record(struct perf_kvm_stat * kvm,int argc,const char ** argv) kvm_events_record() argument 1729 kvm_events_report(struct perf_kvm_stat * kvm,int argc,const char ** argv) kvm_events_report() argument 1821 kvm_events_live(struct perf_kvm_stat * kvm,int argc,const char ** argv) kvm_events_live() argument 1965 struct perf_kvm_stat kvm = { kvm_cmd_stat() local [all...] |
| /linux/include/linux/ |
| H A D | kvm_dirty_ring.h | 35 static inline u32 kvm_dirty_ring_get_rsvd_entries(struct kvm *kvm) in kvm_dirty_ring_get_rsvd_entries() argument 40 static inline bool kvm_use_dirty_bitmap(struct kvm *kvm) in kvm_use_dirty_bitmap() argument 45 static inline int kvm_dirty_ring_alloc(struct kvm *kvm, struct kvm_dirty_ring *ring, in kvm_dirty_ring_alloc() argument 51 static inline int kvm_dirty_ring_reset(struct kvm *kvm, in kvm_dirty_ring_reset() argument 75 int kvm_cpu_dirty_log_size(struct kvm *kvm); 76 bool kvm_use_dirty_bitmap(struct kvm *kvm); 77 bool kvm_arch_allow_write_without_running_vcpu(struct kvm *kvm); 78 u32 kvm_dirty_ring_get_rsvd_entries(struct kvm *kvm); 79 int kvm_dirty_ring_alloc(struct kvm *kvm, struct kvm_dirty_ring *ring, 81 int kvm_dirty_ring_reset(struct kvm *kvm, struct kvm_dirty_ring *ring,
|
| /linux/arch/arm64/kvm/vgic/ |
| H A D | vgic-its.c | 31 static int update_lpi_config(struct kvm *kvm, struct vgic_irq *irq, 37 struct kvm *__k = (i)->dev->kvm; \ 54 struct kvm *__k = (i)->dev->kvm; \ 76 static struct vgic_irq *vgic_add_lpi(struct kvm *kvm, u32 intid, in vgic_add_lpi() argument 79 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_add_lpi() 80 struct vgic_irq *irq = vgic_get_irq(kvm, intid), *oldirq; in vgic_add_lpi() 148 ret = update_lpi_config(kvm, irq, NULL, false); in vgic_add_lpi() 150 vgic_put_irq(kvm, irq); in vgic_add_lpi() 154 ret = vgic_v3_lpi_sync_pending_status(kvm, irq); in vgic_add_lpi() 156 vgic_put_irq(kvm, irq); in vgic_add_lpi() [all …]
|