Home
last modified time | relevance | path

Searched refs:kvm (Results 1 – 184 of 184) sorted by relevance

/linux-4.4.14/include/linux/
Dkvm_host.h183 int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr,
185 int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx,
226 struct kvm *kvm; member
325 struct kvm *kvm, int irq_source_id, int level,
379 struct kvm { struct
447 static inline struct kvm_vcpu *kvm_get_vcpu(struct kvm *kvm, int i) in kvm_get_vcpu() argument
454 return kvm->vcpus[i]; in kvm_get_vcpu()
457 #define kvm_for_each_vcpu(idx, vcpup, kvm) \ argument
459 idx < atomic_read(&kvm->online_vcpus) && \
460 (vcpup = kvm_get_vcpu(kvm, idx)) != NULL; \
[all …]
Dkvm_irqfd.h31 struct kvm *kvm; member
48 struct kvm *kvm; member
Dkvm_types.h20 struct kvm;
/linux-4.4.14/arch/x86/kvm/
Diommu.c42 static int kvm_iommu_unmap_memslots(struct kvm *kvm);
43 static void kvm_iommu_put_pages(struct kvm *kvm,
65 static void kvm_unpin_pages(struct kvm *kvm, pfn_t pfn, unsigned long npages) in kvm_unpin_pages() argument
73 int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot) in kvm_iommu_map_pages() argument
78 struct iommu_domain *domain = kvm->arch.iommu_domain; in kvm_iommu_map_pages()
91 if (!kvm->arch.iommu_noncoherent) in kvm_iommu_map_pages()
105 page_size = kvm_host_page_size(kvm, gfn); in kvm_iommu_map_pages()
135 kvm_unpin_pages(kvm, pfn, page_size >> PAGE_SHIFT); in kvm_iommu_map_pages()
147 kvm_iommu_put_pages(kvm, slot->base_gfn, gfn - slot->base_gfn); in kvm_iommu_map_pages()
151 static int kvm_iommu_map_memslots(struct kvm *kvm) in kvm_iommu_map_memslots() argument
[all …]
Dirq_comm.c37 struct kvm *kvm, int irq_source_id, int level, in kvm_set_pic_irq() argument
40 struct kvm_pic *pic = pic_irqchip(kvm); in kvm_set_pic_irq()
45 struct kvm *kvm, int irq_source_id, int level, in kvm_set_ioapic_irq() argument
48 struct kvm_ioapic *ioapic = kvm->arch.vioapic; in kvm_set_ioapic_irq()
53 int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src, in kvm_irq_delivery_to_apic() argument
65 if (kvm_irq_delivery_to_apic_fast(kvm, src, irq, &r, dest_map)) in kvm_irq_delivery_to_apic()
68 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_irq_delivery_to_apic()
114 struct kvm *kvm, int irq_source_id, int level, bool line_status) in kvm_set_msi() argument
123 return kvm_irq_delivery_to_apic(kvm, NULL, &irq, NULL); in kvm_set_msi()
128 struct kvm *kvm, int irq_source_id, int level, in kvm_arch_set_irq_inatomic() argument
[all …]
Di8254.c74 static void pit_set_gate(struct kvm *kvm, int channel, u32 val) in pit_set_gate() argument
77 &kvm->arch.vpit->pit_state.channels[channel]; in pit_set_gate()
79 WARN_ON(!mutex_is_locked(&kvm->arch.vpit->pit_state.lock)); in pit_set_gate()
100 static int pit_get_gate(struct kvm *kvm, int channel) in pit_get_gate() argument
102 WARN_ON(!mutex_is_locked(&kvm->arch.vpit->pit_state.lock)); in pit_get_gate()
104 return kvm->arch.vpit->pit_state.channels[channel].gate; in pit_get_gate()
107 static s64 __kpit_elapsed(struct kvm *kvm) in __kpit_elapsed() argument
111 struct kvm_kpit_state *ps = &kvm->arch.vpit->pit_state; in __kpit_elapsed()
131 static s64 kpit_elapsed(struct kvm *kvm, struct kvm_kpit_channel_state *c, in kpit_elapsed() argument
135 return __kpit_elapsed(kvm); in kpit_elapsed()
[all …]
Dassigned-dev.h7 int kvm_assign_device(struct kvm *kvm, struct pci_dev *pdev);
8 int kvm_deassign_device(struct kvm *kvm, struct pci_dev *pdev);
10 int kvm_iommu_map_guest(struct kvm *kvm);
11 int kvm_iommu_unmap_guest(struct kvm *kvm);
13 long kvm_vm_ioctl_assigned_device(struct kvm *kvm, unsigned ioctl,
16 void kvm_free_all_assigned_devices(struct kvm *kvm);
18 static inline int kvm_iommu_unmap_guest(struct kvm *kvm) in kvm_iommu_unmap_guest() argument
23 static inline long kvm_vm_ioctl_assigned_device(struct kvm *kvm, unsigned ioctl, in kvm_vm_ioctl_assigned_device() argument
29 static inline void kvm_free_all_assigned_devices(struct kvm *kvm) {} in kvm_free_all_assigned_devices() argument
Dassigned-dev.c44 struct kvm *kvm; member
109 kvm_set_irq(assigned_dev->kvm, in kvm_assigned_dev_raise_guest_irq()
114 kvm_set_irq(assigned_dev->kvm, assigned_dev->irq_source_id, in kvm_assigned_dev_raise_guest_irq()
142 static int kvm_set_irq_inatomic(struct kvm *kvm, int irq_source_id, u32 irq, in kvm_set_irq_inatomic() argument
160 idx = srcu_read_lock(&kvm->irq_srcu); in kvm_set_irq_inatomic()
161 if (kvm_irq_map_gsi(kvm, entries, irq) > 0) { in kvm_set_irq_inatomic()
163 ret = kvm_arch_set_irq_inatomic(e, kvm, irq_source_id, in kvm_set_irq_inatomic()
166 srcu_read_unlock(&kvm->irq_srcu, idx); in kvm_set_irq_inatomic()
174 int ret = kvm_set_irq_inatomic(assigned_dev->kvm, in kvm_assigned_dev_msi()
199 ret = kvm_set_irq_inatomic(assigned_dev->kvm, in kvm_assigned_dev_msix()
[all …]
Dirq.h38 struct kvm;
66 struct kvm *kvm; member
76 struct kvm_pic *kvm_create_pic(struct kvm *kvm);
78 int kvm_pic_read_irq(struct kvm *kvm);
81 static inline struct kvm_pic *pic_irqchip(struct kvm *kvm) in pic_irqchip() argument
83 return kvm->arch.vpic; in pic_irqchip()
86 static inline int pic_in_kernel(struct kvm *kvm) in pic_in_kernel() argument
90 ret = (pic_irqchip(kvm) != NULL); in pic_in_kernel()
94 static inline int irqchip_split(struct kvm *kvm) in irqchip_split() argument
96 return kvm->arch.irqchip_split; in irqchip_split()
[all …]
Dmmu_audit.c31 #define audit_printk(kvm, fmt, args...) \ argument
33 fmt, audit_point_name[kvm->arch.audit_point], ##args)
86 typedef void (*sp_handler) (struct kvm *kvm, struct kvm_mmu_page *sp);
88 static void walk_all_active_sps(struct kvm *kvm, sp_handler fn) in walk_all_active_sps() argument
92 list_for_each_entry(sp, &kvm->arch.active_mmu_pages, link) in walk_all_active_sps()
93 fn(kvm, sp); in walk_all_active_sps()
107 audit_printk(vcpu->kvm, "unsync sp: %p " in audit_mappings()
124 audit_printk(vcpu->kvm, "levels %d pfn %llx hpa %llx " in audit_mappings()
129 static void inspect_spte_has_rmap(struct kvm *kvm, u64 *sptep) in inspect_spte_has_rmap() argument
141 slots = kvm_memslots_for_spte_role(kvm, rev_sp->role); in inspect_spte_has_rmap()
[all …]
Dioapic.h8 struct kvm;
74 struct kvm *kvm; member
96 static inline struct kvm_ioapic *ioapic_irqchip(struct kvm *kvm) in ioapic_irqchip() argument
98 return kvm->arch.vioapic; in ioapic_irqchip()
101 static inline int ioapic_in_kernel(struct kvm *kvm) in ioapic_in_kernel() argument
105 ret = (ioapic_irqchip(kvm) != NULL); in ioapic_in_kernel()
115 int kvm_ioapic_init(struct kvm *kvm);
116 void kvm_ioapic_destroy(struct kvm *kvm);
120 int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src,
122 int kvm_get_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state);
[all …]
Dmmu.c784 static void account_shadowed(struct kvm *kvm, struct kvm_mmu_page *sp) in account_shadowed() argument
793 slots = kvm_memslots_for_spte_role(kvm, sp->role); in account_shadowed()
799 kvm->arch.indirect_shadow_pages++; in account_shadowed()
802 static void unaccount_shadowed(struct kvm *kvm, struct kvm_mmu_page *sp) in unaccount_shadowed() argument
811 slots = kvm_memslots_for_spte_role(kvm, sp->role); in unaccount_shadowed()
818 kvm->arch.indirect_shadow_pages--; in unaccount_shadowed()
842 static int host_mapping_level(struct kvm *kvm, gfn_t gfn) in host_mapping_level() argument
847 page_size = kvm_host_page_size(kvm, gfn); in host_mapping_level()
897 host_level = host_mapping_level(vcpu->kvm, large_gfn); in mapping_level()
1047 static unsigned long *gfn_to_rmap(struct kvm *kvm, gfn_t gfn, struct kvm_mmu_page *sp) in gfn_to_rmap() argument
[all …]
DMakefile2 ccflags-y += -Iarch/x86/kvm
8 KVM := ../../../virt/kvm
10 kvm-y += $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o \
12 kvm-$(CONFIG_KVM_ASYNC_PF) += $(KVM)/async_pf.o
14 kvm-y += x86.o mmu.o emulate.o i8259.o irq.o lapic.o \
18 kvm-$(CONFIG_KVM_DEVICE_ASSIGNMENT) += assigned-dev.o iommu.o
19 kvm-intel-y += vmx.o pmu_intel.o
20 kvm-amd-y += svm.o pmu_amd.o
22 obj-$(CONFIG_KVM) += kvm.o
23 obj-$(CONFIG_KVM_INTEL) += kvm-intel.o
[all …]
Dhyperv.c55 struct kvm_hv *hv = &vcpu->kvm->arch.hyperv; in kvm_hv_msr_get_crash_data()
66 struct kvm_hv *hv = &vcpu->kvm->arch.hyperv; in kvm_hv_msr_get_crash_ctl()
74 struct kvm_hv *hv = &vcpu->kvm->arch.hyperv; in kvm_hv_msr_set_crash_ctl()
98 struct kvm_hv *hv = &vcpu->kvm->arch.hyperv; in kvm_hv_msr_set_crash_data()
110 struct kvm *kvm = vcpu->kvm; in kvm_hv_set_msr_pw() local
111 struct kvm_hv *hv = &kvm->arch.hyperv; in kvm_hv_set_msr_pw()
133 addr = gfn_to_hva(kvm, gfn); in kvm_hv_set_msr_pw()
141 mark_page_dirty(kvm, gfn); in kvm_hv_set_msr_pw()
154 kvm, in kvm_hv_set_msr_pw()
158 mark_page_dirty(kvm, gfn); in kvm_hv_set_msr_pw()
[all …]
Di8254.h32 struct kvm *kvm; member
44 struct kvm *kvm; member
60 void kvm_pit_load_count(struct kvm *kvm, int channel, u32 val, int hpet_legacy_start);
61 struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags);
62 void kvm_free_pit(struct kvm *kvm);
Dioapic.c111 struct kvm_ioapic *ioapic = vcpu->kvm->arch.vioapic; in __rtc_irq_eoi_tracking_restore_one()
137 struct kvm_ioapic *ioapic = vcpu->kvm->arch.vioapic; in kvm_rtc_eoi_tracking_restore_one()
153 kvm_for_each_vcpu(i, vcpu, ioapic->kvm) in kvm_rtc_eoi_tracking_restore_all()
238 struct kvm_ioapic *ioapic = vcpu->kvm->arch.vioapic; in kvm_ioapic_scan_entry()
246 kvm_irq_has_notifier(ioapic->kvm, KVM_IRQCHIP_IOAPIC, index) || in kvm_ioapic_scan_entry()
259 void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) in kvm_vcpu_request_scan_ioapic() argument
261 struct kvm_ioapic *ioapic = kvm->arch.vioapic; in kvm_vcpu_request_scan_ioapic()
265 kvm_make_scan_ioapic_request(kvm); in kvm_vcpu_request_scan_ioapic()
304 kvm_fire_mask_notifiers(ioapic->kvm, KVM_IRQCHIP_IOAPIC, index, mask_after); in ioapic_write_indirect()
308 kvm_vcpu_request_scan_ioapic(ioapic->kvm); in ioapic_write_indirect()
[all …]
Dx86.c89 #define VM_STAT(x) offsetof(struct kvm, stat.x), KVM_STAT_VM
634 kvm_arch_has_noncoherent_dma(vcpu->kvm) && in kvm_set_cr0()
635 !kvm_check_has_quirk(vcpu->kvm, KVM_X86_QUIRK_CD_NW_CLEARED)) in kvm_set_cr0()
636 kvm_zap_gfn_range(vcpu->kvm, 0, ~0ULL); in kvm_set_cr0()
1150 static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock) in kvm_write_wall_clock() argument
1160 r = kvm_read_guest(kvm, wall_clock, &version, sizeof(version)); in kvm_write_wall_clock()
1169 kvm_write_guest(kvm, wall_clock, &version, sizeof(version)); in kvm_write_wall_clock()
1179 if (kvm->arch.kvmclock_offset) { in kvm_write_wall_clock()
1180 struct timespec ts = ns_to_timespec(kvm->arch.kvmclock_offset); in kvm_write_wall_clock()
1187 kvm_write_guest(kvm, wall_clock, &wc, sizeof(wc)); in kvm_write_wall_clock()
[all …]
Dmmu.h78 static inline unsigned int kvm_mmu_available_pages(struct kvm *kvm) in kvm_mmu_available_pages() argument
80 if (kvm->arch.n_max_mmu_pages > kvm->arch.n_used_mmu_pages) in kvm_mmu_available_pages()
81 return kvm->arch.n_max_mmu_pages - in kvm_mmu_available_pages()
82 kvm->arch.n_used_mmu_pages; in kvm_mmu_available_pages()
175 void kvm_mmu_invalidate_zap_all_pages(struct kvm *kvm);
176 void kvm_zap_gfn_range(struct kvm *kvm, gfn_t gfn_start, gfn_t gfn_end);
Di8259.c40 static void pic_irq_request(struct kvm *kvm, int level);
60 kvm_for_each_vcpu(i, vcpu, s->kvm) { in pic_unlock()
87 kvm_notify_acked_irq(s->pics_state->kvm, SELECT_PIC(irq), irq); in pic_clear_isr()
181 pic_irq_request(s->kvm, irq >= 0); in pic_update_irq()
239 int kvm_pic_read_irq(struct kvm *kvm) in kvm_pic_read_irq() argument
242 struct kvm_pic *s = pic_irqchip(kvm); in kvm_pic_read_irq()
295 kvm_for_each_vcpu(i, vcpu, s->pics_state->kvm) in kvm_pic_reset()
378 s->pics_state->kvm, in pic_ioport_write()
577 static void pic_irq_request(struct kvm *kvm, int level) in pic_irq_request() argument
579 struct kvm_pic *s = pic_irqchip(kvm); in pic_irq_request()
[all …]
Dirq.c57 if (irqchip_split(v->kvm)) in kvm_cpu_has_extint()
60 return pic_irqchip(v->kvm)->output; in kvm_cpu_has_extint()
108 if (irqchip_split(v->kvm)) { in kvm_cpu_get_extint()
114 return kvm_pic_read_irq(v->kvm); /* PIC */ in kvm_cpu_get_extint()
Dlapic.c158 static void recalculate_apic_map(struct kvm *kvm) in recalculate_apic_map() argument
166 mutex_lock(&kvm->arch.apic_map_lock); in recalculate_apic_map()
171 kvm_for_each_vcpu(i, vcpu, kvm) { in recalculate_apic_map()
204 old = rcu_dereference_protected(kvm->arch.apic_map, in recalculate_apic_map()
205 lockdep_is_held(&kvm->arch.apic_map_lock)); in recalculate_apic_map()
206 rcu_assign_pointer(kvm->arch.apic_map, new); in recalculate_apic_map()
207 mutex_unlock(&kvm->arch.apic_map_lock); in recalculate_apic_map()
212 kvm_make_scan_ioapic_request(kvm); in recalculate_apic_map()
225 recalculate_apic_map(apic->vcpu->kvm); in apic_set_spiv()
234 recalculate_apic_map(apic->vcpu->kvm); in kvm_apic_set_id()
[all …]
Dx86.h93 vcpu->arch.mmio_gen = kvm_memslots(vcpu->kvm)->generation; in vcpu_cache_mmio_info()
98 return vcpu->arch.mmio_gen == kvm_memslots(vcpu->kvm)->generation; in vcpu_match_mmio_gen()
155 static inline bool kvm_check_has_quirk(struct kvm *kvm, u64 quirk) in kvm_check_has_quirk() argument
157 return !(kvm->arch.disabled_quirks & quirk); in kvm_check_has_quirk()
Dhyperv.h29 bool kvm_hv_hypercall_enabled(struct kvm *kvm);
DKconfig5 source "virt/kvm/Kconfig"
54 a character device node named /dev/kvm.
57 will be called kvm.
71 will be called kvm-intel.
81 will be called kvm-amd.
Dlapic.h66 bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src,
171 bool kvm_intr_is_single_vcpu_fast(struct kvm *kvm, struct kvm_lapic_irq *irq,
Dmmutrace.h284 TP_PROTO(struct kvm *kvm),
285 TP_ARGS(kvm),
293 __entry->mmu_valid_gen = kvm->arch.mmu_valid_gen;
294 __entry->mmu_used_pages = kvm->arch.n_used_mmu_pages;
Dpaging_tmpl.h180 drop_spte(vcpu->kvm, spte); in FNAME()
754 mmu_seq = vcpu->kvm->mmu_notifier_seq; in FNAME()
785 spin_lock(&vcpu->kvm->mmu_lock); in FNAME()
786 if (mmu_notifier_retry(vcpu->kvm, mmu_seq)) in FNAME()
797 spin_unlock(&vcpu->kvm->mmu_lock); in FNAME()
802 spin_unlock(&vcpu->kvm->mmu_lock); in FNAME()
839 spin_lock(&vcpu->kvm->mmu_lock); in FNAME()
855 if (mmu_page_zap_pte(vcpu->kvm, sp, sptep)) in FNAME()
856 kvm_flush_remote_tlbs(vcpu->kvm); in FNAME()
871 spin_unlock(&vcpu->kvm->mmu_lock); in FNAME()
[all …]
Dvmx.c868 static int vmx_set_tss_addr(struct kvm *kvm, unsigned int addr);
878 static int alloc_identity_pagetable(struct kvm *kvm);
1995 if (!kvm_arch_has_assigned_device(vcpu->kvm) || in vmx_vcpu_pi_load()
2101 if (!kvm_arch_has_assigned_device(vcpu->kvm) || in vmx_vcpu_pi_put()
3525 if (!vcpu->kvm->arch.tss_addr) in enter_rmode()
3531 vmcs_writel(GUEST_TR_BASE, vcpu->kvm->arch.tss_addr); in enter_rmode()
3774 guest_cr3 = vcpu->kvm->arch.ept_identity_map_addr; in vmx_set_cr3()
4183 static int init_rmode_tss(struct kvm *kvm) in init_rmode_tss() argument
4189 idx = srcu_read_lock(&kvm->srcu); in init_rmode_tss()
4190 fn = kvm->arch.tss_addr >> PAGE_SHIFT; in init_rmode_tss()
[all …]
Dmtrr.c323 !kvm_arch_has_noncoherent_dma(vcpu->kvm)) in update_mtrr()
342 kvm_zap_gfn_range(vcpu->kvm, gpa_to_gfn(start), gpa_to_gfn(end)); in update_mtrr()
Dtrace.h11 #define TRACE_SYSTEM kvm
1031 #define TRACE_INCLUDE_PATH arch/x86/kvm
Dsvm.c1134 static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id) in svm_create_vcpu() argument
1149 err = kvm_vcpu_init(&svm->vcpu, kvm, id); in svm_create_vcpu()
1497 if (kvm_check_has_quirk(vcpu->kvm, KVM_X86_QUIRK_CD_NW_CLEARED)) in svm_set_cr0()
3661 static int svm_set_tss_addr(struct kvm *kvm, unsigned int addr) in svm_set_tss_addr() argument
/linux-4.4.14/virt/kvm/
Deventfd.c52 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 …]
Dkvm_main.c159 bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req) in kvm_make_all_cpus_request() argument
169 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_make_all_cpus_request()
192 void kvm_flush_remote_tlbs(struct kvm *kvm) in kvm_flush_remote_tlbs() argument
194 long dirty_count = kvm->tlbs_dirty; in kvm_flush_remote_tlbs()
197 if (kvm_make_all_cpus_request(kvm, KVM_REQ_TLB_FLUSH)) in kvm_flush_remote_tlbs()
198 ++kvm->stat.remote_tlb_flush; in kvm_flush_remote_tlbs()
199 cmpxchg(&kvm->tlbs_dirty, dirty_count, 0); in kvm_flush_remote_tlbs()
204 void kvm_reload_remote_mmus(struct kvm *kvm) in kvm_reload_remote_mmus() argument
206 kvm_make_all_cpus_request(kvm, KVM_REQ_MMU_RELOAD); in kvm_reload_remote_mmus()
209 void kvm_make_mclock_inprogress_request(struct kvm *kvm) in kvm_make_mclock_inprogress_request() argument
[all …]
Dcoalesced_mmio.c53 ring = dev->kvm->coalesced_mmio_ring; in coalesced_mmio_has_room()
68 struct kvm_coalesced_mmio_ring *ring = dev->kvm->coalesced_mmio_ring; in coalesced_mmio_write()
73 spin_lock(&dev->kvm->ring_lock); in coalesced_mmio_write()
76 spin_unlock(&dev->kvm->ring_lock); in coalesced_mmio_write()
87 spin_unlock(&dev->kvm->ring_lock); in coalesced_mmio_write()
105 int kvm_coalesced_mmio_init(struct kvm *kvm) in kvm_coalesced_mmio_init() argument
116 kvm->coalesced_mmio_ring = page_address(page); in kvm_coalesced_mmio_init()
123 spin_lock_init(&kvm->ring_lock); in kvm_coalesced_mmio_init()
124 INIT_LIST_HEAD(&kvm->coalesced_zones); in kvm_coalesced_mmio_init()
130 void kvm_coalesced_mmio_free(struct kvm *kvm) in kvm_coalesced_mmio_free() argument
[all …]
Dcoalesced_mmio.h20 struct kvm *kvm; member
24 int kvm_coalesced_mmio_init(struct kvm *kvm);
25 void kvm_coalesced_mmio_free(struct kvm *kvm);
26 int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm,
28 int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm,
33 static inline int kvm_coalesced_mmio_init(struct kvm *kvm) { return 0; } in kvm_coalesced_mmio_init() argument
34 static inline void kvm_coalesced_mmio_free(struct kvm *kvm) { } in kvm_coalesced_mmio_free() argument
Dirqchip.c34 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 != 0) in kvm_send_userspace_msi()
72 return kvm_set_msi(&route, kvm, KVM_USERSPACE_IRQ_SOURCE_ID, 1, false); in kvm_send_userspace_msi()
81 int kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level, in kvm_set_irq() argument
93 idx = srcu_read_lock(&kvm->irq_srcu); in kvm_set_irq()
[all …]
Dvfio.c105 kvm_arch_register_noncoherent_dma(dev->kvm); in kvm_vfio_update_coherency()
107 kvm_arch_unregister_noncoherent_dma(dev->kvm); in kvm_vfio_update_coherency()
158 kvm_arch_start_assignment(dev->kvm); in kvm_vfio_set_group()
195 kvm_arch_end_assignment(dev->kvm); in kvm_vfio_set_group()
246 kvm_arch_end_assignment(dev->kvm); in kvm_vfio_destroy()
271 list_for_each_entry(tmp, &dev->kvm->devices, vm_node) in kvm_vfio_create()
Dasync_pf.c105 kvm_put_kvm(vcpu->kvm); in async_pf_execute()
122 kvm_put_kvm(vcpu->kvm); /* == work->vcpu->kvm */ in kvm_clear_async_pf_completion_queue()
187 kvm_get_kvm(work->vcpu->kvm); in kvm_setup_async_pf()
203 kvm_put_kvm(work->vcpu->kvm); in kvm_setup_async_pf()
/linux-4.4.14/tools/perf/
Dbuiltin-kvm.c72 static const char *get_exit_reason(struct perf_kvm_stat *kvm, in get_exit_reason() argument
83 (unsigned long long)exit_code, kvm->exit_reasons_isa); in get_exit_reason()
87 void exit_event_decode_key(struct perf_kvm_stat *kvm, in exit_event_decode_key() argument
91 const char *exit_reason = get_exit_reason(kvm, key->exit_reasons, in exit_event_decode_key()
97 static bool register_kvm_events_ops(struct perf_kvm_stat *kvm) in register_kvm_events_ops() argument
102 if (!strcmp(events_ops->name, kvm->report_event)) { in register_kvm_events_ops()
103 kvm->events_ops = events_ops->ops; in register_kvm_events_ops()
118 static void init_kvm_event_record(struct perf_kvm_stat *kvm) in init_kvm_event_record() argument
123 INIT_LIST_HEAD(&kvm->kvm_events_cache[i]); in init_kvm_event_record()
195 static struct kvm_event *find_create_kvm_event(struct perf_kvm_stat *kvm, in find_create_kvm_event() argument
[all …]
Dcommand-list.txt15 perf-kvm mainporcelain common
DBuild18 perf-y += builtin-kvm.o
Dperf-completion.sh168 if [[ $prev_skip_opts == @(kvm|kmem|mem|lock|sched|
DMANIFEST83 arch/x86/include/uapi/asm/kvm.h
/linux-4.4.14/arch/powerpc/kvm/
DMakefile7 ccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm
8 KVM := ../../../virt/kvm
24 kvm-e500-objs := \
33 kvm-objs-$(CONFIG_KVM_E500V2) := $(kvm-e500-objs)
35 kvm-e500mc-objs := \
44 kvm-objs-$(CONFIG_KVM_E500MC) := $(kvm-e500mc-objs)
46 kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) := \
49 kvm-pr-y := \
63 kvm-book3s_64-module-objs := \
66 kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \
[all …]
Dbook3s_64_mmu_hv.c46 static long kvmppc_virtmode_do_h_enter(struct kvm *kvm, unsigned long flags,
49 static void kvmppc_rmap_reset(struct kvm *kvm);
51 long kvmppc_alloc_hpt(struct kvm *kvm, u32 *htab_orderp) in kvmppc_alloc_hpt() argument
64 kvm->arch.hpt_cma_alloc = 0; in kvmppc_alloc_hpt()
69 kvm->arch.hpt_cma_alloc = 1; in kvmppc_alloc_hpt()
84 kvm->arch.hpt_virt = hpt; in kvmppc_alloc_hpt()
85 kvm->arch.hpt_order = order; in kvmppc_alloc_hpt()
87 kvm->arch.hpt_npte = 1ul << (order - 4); in kvmppc_alloc_hpt()
89 kvm->arch.hpt_mask = (1ul << (order - 7)) - 1; in kvmppc_alloc_hpt()
92 rev = vmalloc(sizeof(struct revmap_entry) * kvm->arch.hpt_npte); in kvmppc_alloc_hpt()
[all …]
Dbook3s_hv_rm_mmu.c43 static int global_invalidates(struct kvm *kvm, unsigned long flags) in global_invalidates() argument
54 if (kvm->arch.online_vcores == 1 && local_paca->kvm_hstate.kvm_vcpu) in global_invalidates()
62 cpumask_setall(&kvm->arch.need_tlb_flush); in global_invalidates()
64 &kvm->arch.need_tlb_flush); in global_invalidates()
74 void kvmppc_add_revmap_chain(struct kvm *kvm, struct revmap_entry *rev, in kvmppc_add_revmap_chain() argument
82 head = &kvm->arch.revmap[i]; in kvmppc_add_revmap_chain()
85 tail = &kvm->arch.revmap[head->back]; in kvmppc_add_revmap_chain()
116 static unsigned long *revmap_for_hpte(struct kvm *kvm, unsigned long hpte_v, in revmap_for_hpte() argument
124 memslot = __gfn_to_memslot(kvm_memslots_raw(kvm), gfn); in revmap_for_hpte()
133 static void remove_revmap_chain(struct kvm *kvm, long pte_index, in remove_revmap_chain() argument
[all …]
Dbook3s.c82 if (!is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_interrupt_offset()
90 if (is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_update_int_pending()
104 if (is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_critical_section()
391 return gfn_to_pfn_prot(vcpu->kvm, gfn, writing, writable); in kvmppc_gpa_to_pfn()
459 return vcpu->kvm->arch.kvm_ops->get_sregs(vcpu, sregs); in kvm_arch_vcpu_ioctl_get_sregs()
465 return vcpu->kvm->arch.kvm_ops->set_sregs(vcpu, sregs); in kvm_arch_vcpu_ioctl_set_sregs()
539 r = vcpu->kvm->arch.kvm_ops->get_one_reg(vcpu, id, val); in kvmppc_get_one_reg()
615 r = vcpu->kvm->arch.kvm_ops->set_one_reg(vcpu, id, val); in kvmppc_set_one_reg()
685 vcpu->kvm->arch.kvm_ops->vcpu_load(vcpu, cpu); in kvmppc_core_vcpu_load()
690 vcpu->kvm->arch.kvm_ops->vcpu_put(vcpu); in kvmppc_core_vcpu_put()
[all …]
Dbook3s.h15 extern void kvmppc_core_flush_memslot_hv(struct kvm *kvm,
17 extern int kvm_unmap_hva_hv(struct kvm *kvm, unsigned long hva);
18 extern int kvm_unmap_hva_range_hv(struct kvm *kvm, unsigned long start,
20 extern int kvm_age_hva_hv(struct kvm *kvm, unsigned long start,
22 extern int kvm_test_age_hva_hv(struct kvm *kvm, unsigned long hva);
23 extern void kvm_set_spte_hva_hv(struct kvm *kvm, unsigned long hva, pte_t pte);
Dbook3s_rtas.c35 rc = kvmppc_xics_set_xive(vcpu->kvm, irq, server, priority); in kvm_rtas_set_xive()
55 rc = kvmppc_xics_get_xive(vcpu->kvm, irq, &server, &priority); in kvm_rtas_get_xive()
79 rc = kvmppc_xics_int_off(vcpu->kvm, irq); in kvm_rtas_int_off()
98 rc = kvmppc_xics_int_on(vcpu->kvm, irq); in kvm_rtas_int_on()
132 static int rtas_token_undefine(struct kvm *kvm, char *name) in rtas_token_undefine() argument
136 lockdep_assert_held(&kvm->lock); in rtas_token_undefine()
138 list_for_each_entry_safe(d, tmp, &kvm->arch.rtas_tokens, list) { in rtas_token_undefine()
150 static int rtas_token_define(struct kvm *kvm, char *name, u64 token) in rtas_token_define() argument
157 lockdep_assert_held(&kvm->lock); in rtas_token_define()
159 list_for_each_entry(d, &kvm->arch.rtas_tokens, list) { in rtas_token_define()
[all …]
Dbook3s_64_vio.c50 struct kvm *kvm = stt->kvm; in release_spapr_tce_table() local
53 mutex_lock(&kvm->lock); in release_spapr_tce_table()
58 mutex_unlock(&kvm->lock); in release_spapr_tce_table()
60 kvm_put_kvm(kvm); in release_spapr_tce_table()
100 long kvm_vm_ioctl_create_spapr_tce(struct kvm *kvm, in kvm_vm_ioctl_create_spapr_tce() argument
109 list_for_each_entry(stt, &kvm->arch.spapr_tce_tables, list) { in kvm_vm_ioctl_create_spapr_tce()
123 stt->kvm = kvm; in kvm_vm_ioctl_create_spapr_tce()
131 kvm_get_kvm(kvm); in kvm_vm_ioctl_create_spapr_tce()
133 mutex_lock(&kvm->lock); in kvm_vm_ioctl_create_spapr_tce()
134 list_add(&stt->list, &kvm->arch.spapr_tce_tables); in kvm_vm_ioctl_create_spapr_tce()
[all …]
Dbook3s_xics.c163 int kvmppc_xics_set_xive(struct kvm *kvm, u32 irq, u32 server, u32 priority) in kvmppc_xics_set_xive() argument
165 struct kvmppc_xics *xics = kvm->arch.xics; in kvmppc_xics_set_xive()
179 icp = kvmppc_xics_find_server(kvm, server); in kvmppc_xics_set_xive()
193 int kvmppc_xics_get_xive(struct kvm *kvm, u32 irq, u32 *server, u32 *priority) in kvmppc_xics_get_xive() argument
195 struct kvmppc_xics *xics = kvm->arch.xics; in kvmppc_xics_get_xive()
219 int kvmppc_xics_int_on(struct kvm *kvm, u32 irq) in kvmppc_xics_int_on() argument
221 struct kvmppc_xics *xics = kvm->arch.xics; in kvmppc_xics_int_on()
235 icp = kvmppc_xics_find_server(kvm, state->server); in kvmppc_xics_int_on()
246 int kvmppc_xics_int_off(struct kvm *kvm, u32 irq) in kvmppc_xics_int_off() argument
248 struct kvmppc_xics *xics = kvm->arch.xics; in kvmppc_xics_int_off()
[all …]
Dpowerpc.c254 if (!vcpu->arch.papr_enabled && is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_sanity_check()
341 if (kvm_write_guest(vcpu->kvm, pte.raddr, ptr, size)) in kvmppc_st()
380 if (kvm_read_guest(vcpu->kvm, pte.raddr, ptr, size)) in kvmppc_ld()
402 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) in kvm_arch_init_vm() argument
429 kvm->arch.kvm_ops = kvm_ops; in kvm_arch_init_vm()
430 return kvmppc_core_init_vm(kvm); in kvm_arch_init_vm()
435 void kvm_arch_destroy_vm(struct kvm *kvm) in kvm_arch_destroy_vm() argument
440 kvm_for_each_vcpu(i, vcpu, kvm) in kvm_arch_destroy_vm()
443 mutex_lock(&kvm->lock); in kvm_arch_destroy_vm()
444 for (i = 0; i < atomic_read(&kvm->online_vcpus); i++) in kvm_arch_destroy_vm()
[all …]
Dbook3s_64_vio_hv.c47 struct kvm *kvm = vcpu->kvm; in kvmppc_h_put_tce() local
53 list_for_each_entry(stt, &kvm->arch.spapr_tce_tables, list) { in kvmppc_h_put_tce()
82 struct kvm *kvm = vcpu->kvm; in kvmppc_h_get_tce() local
85 list_for_each_entry(stt, &kvm->arch.spapr_tce_tables, list) { in kvmppc_h_get_tce()
Dbook3s_hv.c311 vcpu->arch.vcore->lpcr, vcpu->kvm->arch.sdr1, in kvmppc_dump_regs()
315 static struct kvm_vcpu *kvmppc_find_vcpu(struct kvm *kvm, int id) in kvmppc_find_vcpu() argument
320 mutex_lock(&kvm->lock); in kvmppc_find_vcpu()
321 kvm_for_each_vcpu(r, v, kvm) { in kvmppc_find_vcpu()
327 mutex_unlock(&kvm->lock); in kvmppc_find_vcpu()
373 struct kvm *kvm = vcpu->kvm; in do_h_register_vpa() local
381 tvcpu = kvmppc_find_vcpu(kvm, vcpuid); in do_h_register_vpa()
393 va = kvmppc_pin_guest_page(kvm, vpa, &nb); in do_h_register_vpa()
400 kvmppc_unpin_guest_page(kvm, va, vpa, false); in do_h_register_vpa()
481 struct kvm *kvm = vcpu->kvm; in kvmppc_update_vpa() local
[all …]
Dbook3s_pr_papr.c52 mutex_lock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_enter()
79 mutex_unlock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_enter()
95 mutex_lock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_remove()
116 mutex_unlock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_remove()
146 mutex_lock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_bulk_remove()
197 mutex_unlock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_bulk_remove()
213 mutex_lock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_protect()
241 mutex_unlock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_protect()
295 !test_bit(cmd/4, vcpu->kvm->arch.enabled_hcalls)) in kvmppc_h_pr()
329 if (list_empty(&vcpu->kvm->arch.rtas_tokens)) in kvmppc_h_pr()
[all …]
Dbook3s_pr.c251 static void do_kvm_unmap_hva(struct kvm *kvm, unsigned long start, in do_kvm_unmap_hva() argument
259 slots = kvm_memslots(kvm); in do_kvm_unmap_hva()
275 kvm_for_each_vcpu(i, vcpu, kvm) in do_kvm_unmap_hva()
281 static int kvm_unmap_hva_pr(struct kvm *kvm, unsigned long hva) in kvm_unmap_hva_pr() argument
285 do_kvm_unmap_hva(kvm, hva, hva + PAGE_SIZE); in kvm_unmap_hva_pr()
290 static int kvm_unmap_hva_range_pr(struct kvm *kvm, unsigned long start, in kvm_unmap_hva_range_pr() argument
293 do_kvm_unmap_hva(kvm, start, end); in kvm_unmap_hva_range_pr()
298 static int kvm_age_hva_pr(struct kvm *kvm, unsigned long start, in kvm_age_hva_pr() argument
305 static int kvm_test_age_hva_pr(struct kvm *kvm, unsigned long hva) in kvm_test_age_hva_pr() argument
311 static void kvm_set_spte_hva_pr(struct kvm *kvm, unsigned long hva, pte_t pte) in kvm_set_spte_hva_pr() argument
[all …]
Dirq.h6 static inline int irqchip_in_kernel(struct kvm *kvm) in irqchip_in_kernel() argument
11 ret = ret || (kvm->arch.mpic != NULL); in irqchip_in_kernel()
14 ret = ret || (kvm->arch.xics != NULL); in irqchip_in_kernel()
De500_mmu_host.c133 __write_host_tlbe(stlbe, mas0, vcpu_e500->vcpu.kvm->arch.lpid); in write_host_tlbe()
138 vcpu_e500->vcpu.kvm->arch.lpid); in write_host_tlbe()
336 struct kvm *kvm = vcpu_e500->vcpu.kvm; in kvmppc_e500_shadow_map() local
344 mmu_seq = kvm->mmu_notifier_seq; in kvmppc_e500_shadow_map()
355 slot = gfn_to_memslot(vcpu_e500->vcpu.kvm, gfn); in kvmppc_e500_shadow_map()
464 spin_lock(&kvm->mmu_lock); in kvmppc_e500_shadow_map()
465 if (mmu_notifier_retry(kvm, mmu_seq)) { in kvmppc_e500_shadow_map()
504 spin_unlock(&kvm->mmu_lock); in kvmppc_e500_shadow_map()
726 int kvm_unmap_hva(struct kvm *kvm, unsigned long hva) in kvm_unmap_hva() argument
734 kvm_flush_remote_tlbs(kvm); in kvm_unmap_hva()
[all …]
Dbook3s_xics.h102 struct kvm *kvm; member
113 static inline struct kvmppc_icp *kvmppc_xics_find_server(struct kvm *kvm, in kvmppc_xics_find_server() argument
119 kvm_for_each_vcpu(i, vcpu, kvm) { in kvmppc_xics_find_server()
Dbooke.c49 #define VM_STAT(x) offsetof(struct kvm, stat.x), KVM_STAT_VM
1256 idx = srcu_read_lock(&vcpu->kvm->srcu); in kvmppc_handle_exit()
1261 if (kvm_is_visible_gfn(vcpu->kvm, gfn)) { in kvmppc_handle_exit()
1280 srcu_read_unlock(&vcpu->kvm->srcu, idx); in kvmppc_handle_exit()
1304 idx = srcu_read_lock(&vcpu->kvm->srcu); in kvmppc_handle_exit()
1309 if (kvm_is_visible_gfn(vcpu->kvm, gfn)) { in kvmppc_handle_exit()
1322 srcu_read_unlock(&vcpu->kvm->srcu, idx); in kvmppc_handle_exit()
1605 return vcpu->kvm->arch.kvm_ops->get_sregs(vcpu, sregs); in kvm_arch_vcpu_ioctl_get_sregs()
1624 return vcpu->kvm->arch.kvm_ops->set_sregs(vcpu, sregs); in kvm_arch_vcpu_ioctl_set_sregs()
1676 r = vcpu->kvm->arch.kvm_ops->get_one_reg(vcpu, id, val); in kvmppc_get_one_reg()
[all …]
Dbook3s_64_mmu_host.c98 struct kvm *kvm = vcpu->kvm; in kvmppc_mmu_map_page() local
104 mmu_seq = kvm->mmu_notifier_seq; in kvmppc_mmu_map_page()
139 mark_page_dirty(vcpu->kvm, gfn); in kvmppc_mmu_map_page()
161 spin_lock(&kvm->mmu_lock); in kvmppc_mmu_map_page()
162 if (!cpte || mmu_notifier_retry(kvm, mmu_seq)) { in kvmppc_mmu_map_page()
208 spin_unlock(&kvm->mmu_lock); in kvmppc_mmu_map_page()
De500mc.c308 static struct kvm_vcpu *kvmppc_core_vcpu_create_e500mc(struct kvm *kvm, in kvmppc_core_vcpu_create_e500mc() argument
325 err = kvm_vcpu_init(vcpu, kvm, id); in kvmppc_core_vcpu_create_e500mc()
360 static int kvmppc_core_init_vm_e500mc(struct kvm *kvm) in kvmppc_core_init_vm_e500mc() argument
376 kvm->arch.lpid = lpid; in kvmppc_core_init_vm_e500mc()
380 static void kvmppc_core_destroy_vm_e500mc(struct kvm *kvm) in kvmppc_core_destroy_vm_e500mc() argument
382 int lpid = kvm->arch.lpid; in kvmppc_core_destroy_vm_e500mc()
Dmpic.c192 struct kvm *kvm; member
1107 kvm_notify_acked_irq(opp->kvm, 0, notify_eoi); in openpic_cpu_write_internal()
1450 kvm_io_bus_register_dev(opp->kvm, KVM_MMIO_BUS, in map_mmio()
1457 kvm_io_bus_unregister_dev(opp->kvm, KVM_MMIO_BUS, &opp->mmio); in unmap_mmio()
1476 mutex_lock(&opp->kvm->slots_lock); in set_base_addr()
1490 mutex_unlock(&opp->kvm->slots_lock); in set_base_addr()
1568 mutex_lock(&opp->kvm->slots_lock); in mpic_get_attr()
1570 mutex_unlock(&opp->kvm->slots_lock); in mpic_get_attr()
1636 dev->kvm->arch.mpic = NULL; in mpic_destroy()
1650 kvm_set_irq_routing(opp->kvm, routing, 0, 0); in mpic_set_default_irq_routing()
[all …]
Dbook3s_hv_rm_xics.c230 icp = kvmppc_xics_find_server(xics->kvm, state->server); in icp_rm_deliver_irq()
387 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_xirr()
426 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_ipi()
439 icp = kvmppc_xics_find_server(vcpu->kvm, server); in kvmppc_rm_h_ipi()
512 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_cppr()
573 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_eoi()
619 if (!hlist_empty(&vcpu->kvm->irq_ack_notifier_list)) { in kvmppc_rm_h_eoi()
DKconfig5 source "virt/kvm/Kconfig"
57 a character device node named /dev/kvm.
72 a character device node named /dev/kvm.
122 kvm/vm#/vcpu#/timings. The overhead is of the order of 30 - 40
135 report is available in debugfs kvm/vm#_vcpu#_timing.
152 a character device node named /dev/kvm.
168 a character device node named /dev/kvm.
De500.c440 static struct kvm_vcpu *kvmppc_core_vcpu_create_e500(struct kvm *kvm, in kvmppc_core_vcpu_create_e500() argument
454 err = kvm_vcpu_init(vcpu, kvm, id); in kvmppc_core_vcpu_create_e500()
494 static int kvmppc_core_init_vm_e500(struct kvm *kvm) in kvmppc_core_init_vm_e500() argument
499 static void kvmppc_core_destroy_vm_e500(struct kvm *kvm) in kvmppc_core_destroy_vm_e500() argument
Demulate.c133 emulated = vcpu->kvm->arch.kvm_ops->emulate_mtspr(vcpu, sprn, in kvmppc_emulate_mtspr()
194 emulated = vcpu->kvm->arch.kvm_ops->emulate_mfspr(vcpu, sprn, in kvmppc_emulate_mfspr()
297 emulated = vcpu->kvm->arch.kvm_ops->emulate_op(run, vcpu, inst, in kvmppc_emulate_instruction()
Dbook3s_64_mmu.c165 r = gfn_to_hva(vcpu->kvm, pteg >> PAGE_SHIFT); in kvmppc_mmu_book3s_64_get_pteg()
260 mutex_lock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_mmu_book3s_64_xlate()
363 mutex_unlock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_mmu_book3s_64_xlate()
370 mutex_unlock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_mmu_book3s_64_xlate()
563 kvm_for_each_vcpu(i, v, vcpu->kvm) in kvmppc_mmu_book3s_64_tlbie()
De500.h271 if (!gfn_to_memslot(vcpu->kvm, gpa >> PAGE_SHIFT)) in tlbe_is_host_safe()
310 return get_thread_specific_lpid(vcpu->kvm->arch.lpid); in get_lpid()
Dtrace.h7 #define TRACE_SYSTEM kvm
Dbook3s_32_mmu.c132 r = gfn_to_hva(vcpu->kvm, pteg >> PAGE_SHIFT); in kvmppc_mmu_book3s_32_get_pteg()
359 kvm_for_each_vcpu(i, v, vcpu->kvm) in kvmppc_mmu_book3s_32_tlbie()
Dbook3s_32_mmu_host.c212 mark_page_dirty(vcpu->kvm, orig_pte->raddr >> PAGE_SHIFT); in kvmppc_mmu_map_page()
De500_emulate.c77 kvm_for_each_vcpu(i, cvcpu, vcpu->kvm) { in kvmppc_e500_emul_msgsnd()
De500_mmu.c434 idx = srcu_read_lock(&vcpu->kvm->srcu); in kvmppc_e500_emul_tlbwe()
450 srcu_read_unlock(&vcpu->kvm->srcu, idx); in kvmppc_e500_emul_tlbwe()
/linux-4.4.14/arch/arm/kvm/
Dmmu.c64 void kvm_flush_remote_tlbs(struct kvm *kvm) in kvm_flush_remote_tlbs() argument
66 kvm_call_hyp(__kvm_tlb_flush_vmid, kvm); in kvm_flush_remote_tlbs()
69 static void kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) in kvm_tlb_flush_vmid_ipa() argument
77 if (kvm) in kvm_tlb_flush_vmid_ipa()
78 kvm_call_hyp(__kvm_tlb_flush_vmid_ipa, kvm, ipa); in kvm_tlb_flush_vmid_ipa()
115 static void stage2_dissolve_pmd(struct kvm *kvm, phys_addr_t addr, pmd_t *pmd) in stage2_dissolve_pmd() argument
121 kvm_tlb_flush_vmid_ipa(kvm, addr); in stage2_dissolve_pmd()
157 static void clear_pgd_entry(struct kvm *kvm, pgd_t *pgd, phys_addr_t addr) in clear_pgd_entry() argument
161 kvm_tlb_flush_vmid_ipa(kvm, addr); in clear_pgd_entry()
166 static void clear_pud_entry(struct kvm *kvm, pud_t *pud, phys_addr_t addr) in clear_pud_entry() argument
[all …]
Darm.c113 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) in kvm_arch_init_vm() argument
120 ret = kvm_alloc_stage2_pgd(kvm); in kvm_arch_init_vm()
124 ret = create_hyp_mappings(kvm, kvm + 1); in kvm_arch_init_vm()
128 kvm_vgic_early_init(kvm); in kvm_arch_init_vm()
129 kvm_timer_init(kvm); in kvm_arch_init_vm()
132 kvm->arch.vmid_gen = 0; in kvm_arch_init_vm()
135 kvm->arch.max_vcpus = kvm_vgic_get_max_vcpus(); in kvm_arch_init_vm()
139 kvm_free_stage2_pgd(kvm); in kvm_arch_init_vm()
154 void kvm_arch_destroy_vm(struct kvm *kvm) in kvm_arch_destroy_vm() argument
158 kvm_free_stage2_pgd(kvm); in kvm_arch_destroy_vm()
[all …]
Dpsci.c71 struct kvm *kvm = source_vcpu->kvm; in kvm_psci_vcpu_on() local
82 vcpu = kvm_mpidr_to_vcpu(kvm, cpu_id); in kvm_psci_vcpu_on()
134 struct kvm *kvm = vcpu->kvm; in kvm_psci_vcpu_affinity_info() local
152 kvm_for_each_vcpu(i, tmp, kvm) { in kvm_psci_vcpu_affinity_info()
181 kvm_for_each_vcpu(i, tmp, vcpu->kvm) { in kvm_prepare_system_event()
DMakefile10 ccflags-y += -Iarch/arm/kvm
17 KVM := ../../../virt/kvm
18 kvm-arm-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o $(KVM)/vfio.o
20 obj-y += kvm-arm.o init.o interrupts.o
DKconfig5 source "virt/kvm/Kconfig"
40 a character device node named /dev/kvm.
Dtrace.h7 #define TRACE_SYSTEM kvm
327 #define TRACE_INCLUDE_PATH arch/arm/kvm
Dguest.c32 #define VM_STAT(x) { #x, offsetof(struct kvm, stat.x), KVM_STAT_VM }
Dcoproc.c152 ncores = atomic_read(&vcpu->kvm->online_vcpus) - 1; in reset_l2ctlr()
169 if (atomic_read(&vcpu->kvm->online_vcpus) > 1) in reset_actlr()
/linux-4.4.14/arch/s390/kvm/
Dkvm-s390.c152 struct kvm *kvm; in kvm_clock_sync() local
157 list_for_each_entry(kvm, &vm_list, vm_list) { in kvm_clock_sync()
158 kvm->arch.epoch -= *delta; in kvm_clock_sync()
159 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_clock_sync()
215 int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) in kvm_vm_ioctl_check_extension() argument
266 static void kvm_s390_sync_dirty_log(struct kvm *kvm, in kvm_s390_sync_dirty_log() argument
271 struct gmap *gmap = kvm->arch.gmap; in kvm_s390_sync_dirty_log()
280 mark_page_dirty(kvm, cur_gfn); in kvm_s390_sync_dirty_log()
289 int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, in kvm_vm_ioctl_get_dirty_log() argument
298 mutex_lock(&kvm->slots_lock); in kvm_vm_ioctl_get_dirty_log()
[all …]
Dkvm-s390.h45 debug_sprintf_event(d_vcpu->kvm->arch.dbf, d_loglevel, \
56 static inline int kvm_is_ucontrol(struct kvm *kvm) in kvm_is_ucontrol() argument
59 if (kvm->arch.gmap) in kvm_is_ucontrol()
155 static inline int test_kvm_facility(struct kvm *kvm, unsigned long nr) in test_kvm_facility() argument
157 return __test_facility(nr, kvm->arch.model.fac->mask) && in test_kvm_facility()
158 __test_facility(nr, kvm->arch.model.fac->list); in test_kvm_facility()
173 static inline int kvm_s390_user_cpu_state_ctrl(struct kvm *kvm) in kvm_s390_user_cpu_state_ctrl() argument
175 return kvm->arch.user_cpu_state_ctrl != 0; in kvm_s390_user_cpu_state_ctrl()
184 void kvm_s390_clear_float_irqs(struct kvm *kvm);
185 int __must_check kvm_s390_inject_vm(struct kvm *kvm,
[all …]
DMakefile9 KVM := ../../../virt/kvm
12 ccflags-y := -Ivirt/kvm -Iarch/s390/kvm
14 kvm-objs := $(common-objs) kvm-s390.o intercept.o interrupt.o priv.o sigp.o
15 kvm-objs += diag.o gaccess.o guestdbg.o
17 obj-$(CONFIG_KVM) += kvm.o
Dinterrupt.c72 if (vcpu->arch.sie_block->ckc >= kvm_s390_get_tod_clock_fast(vcpu->kvm)) in ckc_irq_pending()
107 return vcpu->kvm->arch.float_int.pending_irqs | in pending_irqs()
150 vcpu->kvm->arch.float_int.mchk.cr14)) in deliverable_irqs()
323 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_machine_check()
601 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_service()
635 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_pfault_done()
677 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_virtio()
729 fi = &vcpu->kvm->arch.float_int; in __deliver_io()
795 uint8_t sigp_ctrl = vcpu->kvm->arch.sca->cpu[vcpu->vcpu_id].sigp_ctrl; in kvm_s390_ext_call_pending()
849 now = kvm_s390_get_tod_clock_fast(vcpu->kvm); in kvm_s390_handle_wait()
[all …]
Dgaccess.c262 union ipte_control *ic = &vcpu->kvm->arch.sca->ipte_control; in ipte_lock_held()
266 return vcpu->kvm->arch.ipte_lock_count != 0; in ipte_lock_held()
273 mutex_lock(&vcpu->kvm->arch.ipte_mutex); in ipte_lock_simple()
274 vcpu->kvm->arch.ipte_lock_count++; in ipte_lock_simple()
275 if (vcpu->kvm->arch.ipte_lock_count > 1) in ipte_lock_simple()
277 ic = &vcpu->kvm->arch.sca->ipte_control; in ipte_lock_simple()
288 mutex_unlock(&vcpu->kvm->arch.ipte_mutex); in ipte_lock_simple()
295 mutex_lock(&vcpu->kvm->arch.ipte_mutex); in ipte_unlock_simple()
296 vcpu->kvm->arch.ipte_lock_count--; in ipte_unlock_simple()
297 if (vcpu->kvm->arch.ipte_lock_count) in ipte_unlock_simple()
[all …]
Dtrace-s390.h7 #define TRACE_SYSTEM kvm-s390
246 TP_PROTO(void *kvm),
247 TP_ARGS(kvm),
250 __field(void *, kvm)
254 __entry->kvm = kvm;
258 __entry->kvm)
Dgaccess.h103 kvm_write_guest(__vcpu->kvm, __gpa, &__x, sizeof(__x)); \
129 return kvm_write_guest(vcpu->kvm, gpa, data, len); in write_guest_lc()
155 return kvm_read_guest(vcpu->kvm, gpa, data, len); in read_guest_lc()
261 return kvm_write_guest(vcpu->kvm, gpa, data, len); in write_guest_abs()
284 return kvm_read_guest(vcpu->kvm, gpa, data, len); in read_guest_abs()
Ddiag.c108 if (kvm_is_error_gpa(vcpu->kvm, parm.token_addr)) in __diag_page_ref_service()
158 struct kvm *kvm = vcpu->kvm; in __diag_time_slice_end_directed() local
170 kvm_for_each_vcpu(i, tcpu, kvm) in __diag_time_slice_end_directed()
197 if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm)) in __diag_ipl_functions()
215 if (!vcpu->kvm->arch.css_support || in __diag_virtio_hypercall()
Dirq.h17 static inline int irqchip_in_kernel(struct kvm *kvm) in irqchip_in_kernel() argument
Dpriv.c51 kvm_s390_set_tod_clock(vcpu->kvm, val); in handle_set_clock()
87 if (kvm_is_error_gpa(vcpu->kvm, address)) in handle_set_prefix()
186 wait_event(vcpu->kvm->arch.ipte_wq, !ipte_lock_held(vcpu)); in handle_ipte_interlock()
207 if (kvm_is_error_gpa(vcpu->kvm, addr)) in handle_test_block()
213 if (kvm_clear_guest(vcpu->kvm, addr, PAGE_SIZE)) in handle_test_block()
233 inti = kvm_s390_get_io_int(vcpu->kvm, vcpu->arch.sie_block->gcr[6], 0); in handle_tpi()
276 if (kvm_s390_reinject_io_int(vcpu->kvm, inti)) { in handle_tpi()
291 inti = kvm_s390_get_io_int(vcpu->kvm, isc_mask, in handle_tsch()
322 if (vcpu->kvm->arch.css_support) { in handle_io_inst()
357 fac = *vcpu->kvm->arch.model.fac->list >> 32; in handle_stfl()
[all …]
DKconfig4 source "virt/kvm/Kconfig"
38 a character device node named /dev/kvm.
41 will be called kvm.
Dsigp.c170 kvm_for_each_vcpu(i, v, vcpu->kvm) { in __sigp_set_arch()
197 if (kvm_is_error_gpa(vcpu->kvm, irq.u.prefix.address)) { in __sigp_set_prefix()
294 struct kvm_vcpu *dst_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr); in handle_sigp_dst()
370 if (!vcpu->kvm->arch.user_sigp) in handle_sigp_order_in_user_space()
477 dest_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr); in kvm_s390_handle_sigp_pei()
Dintercept.c98 if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm)) in handle_stop()
Dtrace.h10 #define TRACE_SYSTEM kvm
/linux-4.4.14/arch/powerpc/include/asm/
Dkvm_ppc.h121 extern struct kvm_vcpu *kvmppc_core_vcpu_create(struct kvm *kvm,
158 extern long kvmppc_alloc_hpt(struct kvm *kvm, u32 *htab_orderp);
159 extern long kvmppc_alloc_reset_hpt(struct kvm *kvm, u32 *htab_orderp);
160 extern void kvmppc_free_hpt(struct kvm *kvm);
161 extern long kvmppc_prepare_vrma(struct kvm *kvm,
167 extern long kvm_vm_ioctl_create_spapr_tce(struct kvm *kvm,
175 extern int kvmppc_core_init_vm(struct kvm *kvm);
176 extern void kvmppc_core_destroy_vm(struct kvm *kvm);
177 extern void kvmppc_core_free_memslot(struct kvm *kvm,
180 extern int kvmppc_core_create_memslot(struct kvm *kvm,
[all …]
Dkvm_book3s.h133 extern long kvmppc_hv_find_lock_hpte(struct kvm *kvm, gva_t eaddr,
145 extern int kvmppc_book3s_hcall_implemented(struct kvm *kvm, unsigned long hc);
159 extern void kvmppc_add_revmap_chain(struct kvm *kvm, struct revmap_entry *rev,
162 extern void kvmppc_invalidate_hpte(struct kvm *kvm, __be64 *hptep,
164 void kvmppc_clear_ref_hpte(struct kvm *kvm, __be64 *hptep,
166 extern void *kvmppc_pin_guest_page(struct kvm *kvm, unsigned long addr,
168 extern void kvmppc_unpin_guest_page(struct kvm *kvm, void *addr,
170 extern long kvmppc_do_h_enter(struct kvm *kvm, unsigned long flags,
173 extern long kvmppc_do_h_remove(struct kvm *kvm, unsigned long flags,
176 extern long kvmppc_hv_get_dirty_log(struct kvm *kvm,
[all …]
Dkvm_host.h57 extern int kvm_unmap_hva(struct kvm *kvm, unsigned long hva);
58 extern int kvm_unmap_hva_range(struct kvm *kvm,
60 extern int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
61 extern int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
62 extern void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
64 static inline void kvm_arch_mmu_notifier_invalidate_page(struct kvm *kvm, in kvm_arch_mmu_notifier_invalidate_page() argument
180 struct kvm *kvm; member
294 struct kvm *kvm; member
714 static inline void kvm_arch_sync_events(struct kvm *kvm) {} in kvm_arch_sync_events() argument
715 static inline void kvm_arch_memslots_updated(struct kvm *kvm, struct kvm_memslots *slots) {} in kvm_arch_memslots_updated() argument
[all …]
Dkvm_book3s_64.h418 static inline void note_hpte_modification(struct kvm *kvm, in note_hpte_modification() argument
421 if (atomic_read(&kvm->arch.hpte_mod_interest)) in note_hpte_modification()
431 static inline struct kvm_memslots *kvm_memslots_raw(struct kvm *kvm) in kvm_memslots_raw() argument
433 return rcu_dereference_raw_notrace(kvm->memslots[0]); in kvm_memslots_raw()
436 extern void kvmppc_mmu_debugfs_init(struct kvm *kvm);
/linux-4.4.14/arch/arm64/kvm/
DMakefile5 ccflags-y += -Iarch/arm64/kvm
9 KVM=../../../virt/kvm
10 ARM=../../../arch/arm/kvm
12 obj-$(CONFIG_KVM_ARM_HOST) += kvm.o
14 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o $(KVM)/vfi…
15 kvm-$(CONFIG_KVM_ARM_HOST) += $(ARM)/arm.o $(ARM)/mmu.o $(ARM)/mmio.o
16 kvm-$(CONFIG_KVM_ARM_HOST) += $(ARM)/psci.o $(ARM)/perf.o
18 kvm-$(CONFIG_KVM_ARM_HOST) += emulate.o inject_fault.o regmap.o
19 kvm-$(CONFIG_KVM_ARM_HOST) += hyp.o hyp-init.o handle_exit.o
20 kvm-$(CONFIG_KVM_ARM_HOST) += guest.o debug.o reset.o sys_regs.o sys_regs_generic_v8.o
[all …]
DKconfig5 source "virt/kvm/Kconfig"
Dtrace.h7 #define TRACE_SYSTEM kvm
/linux-4.4.14/virt/kvm/arm/
Dvgic.h44 void vgic_update_state(struct kvm *kvm);
45 int vgic_init_common_maps(struct kvm *kvm);
95 int vgic_register_kvm_io_dev(struct kvm *kvm, gpa_t base, int len,
110 bool vgic_handle_enable_reg(struct kvm *kvm, struct kvm_exit_mmio *mmio,
113 bool vgic_handle_set_pending_reg(struct kvm *kvm, struct kvm_exit_mmio *mmio,
116 bool vgic_handle_clear_pending_reg(struct kvm *kvm, struct kvm_exit_mmio *mmio,
119 bool vgic_handle_set_active_reg(struct kvm *kvm,
123 bool vgic_handle_clear_active_reg(struct kvm *kvm,
130 void vgic_kick_vcpus(struct kvm *kvm);
136 int vgic_init(struct kvm *kvm);
[all …]
Dvgic.c121 vcpu->kvm->arch.vgic.vm_ops.add_sgi_source(vcpu, irq, source); in add_sgi_source()
126 return vcpu->kvm->arch.vgic.vm_ops.queue_sgi(vcpu, irq); in queue_sgi()
129 int kvm_vgic_map_resources(struct kvm *kvm) in kvm_vgic_map_resources() argument
131 return kvm->arch.vgic.vm_ops.map_resources(kvm, vgic); in kvm_vgic_map_resources()
276 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_edge()
285 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_enabled()
292 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_queued()
299 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_active()
306 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_set_queued()
313 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_clear_queued()
[all …]
Dvgic-v2-emul.c51 reg = vcpu->kvm->arch.vgic.enabled; in handle_mmio_misc()
55 vcpu->kvm->arch.vgic.enabled = reg & 1; in handle_mmio_misc()
56 vgic_update_state(vcpu->kvm); in handle_mmio_misc()
62 reg = (atomic_read(&vcpu->kvm->online_vcpus) - 1) << 5; in handle_mmio_misc()
63 reg |= (vcpu->kvm->arch.vgic.nr_irqs >> 5) - 1; in handle_mmio_misc()
82 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_enable_reg()
90 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_enable_reg()
98 return vgic_handle_set_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_pending_reg()
106 return vgic_handle_clear_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_pending_reg()
114 return vgic_handle_set_active_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_active_reg()
[all …]
Dvgic-v3-emul.c72 if (vcpu->kvm->arch.vgic.enabled) in handle_mmio_ctlr()
79 vcpu->kvm->arch.vgic.enabled = !!(reg & GICD_CTLR_ENABLE_SS_G1); in handle_mmio_ctlr()
80 vgic_update_state(vcpu->kvm); in handle_mmio_ctlr()
98 reg = (min(vcpu->kvm->arch.vgic.nr_irqs, 1024) >> 5) - 1; in handle_mmio_typer()
125 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_enable_reg_dist()
139 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_enable_reg_dist()
153 return vgic_handle_set_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_pending_reg_dist()
166 return vgic_handle_clear_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_pending_reg_dist()
179 return vgic_handle_set_active_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_active_reg_dist()
192 return vgic_handle_clear_active_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_active_reg_dist()
[all …]
Darch_timer.c103 now = kvm_phys_timer_read() - vcpu->kvm->arch.timer.cntvoff; in kvm_timer_compute_delta()
159 now = kvm_phys_timer_read() - vcpu->kvm->arch.timer.cntvoff; in kvm_timer_should_fire()
169 BUG_ON(!vgic_initialized(vcpu->kvm)); in kvm_timer_update_irq()
174 ret = kvm_vgic_inject_mapped_irq(vcpu->kvm, vcpu->vcpu_id, in kvm_timer_update_irq()
194 if (!vgic_initialized(vcpu->kvm)) in kvm_timer_update_state()
361 vcpu->kvm->arch.timer.cntvoff = kvm_phys_timer_read() - value; in kvm_arm_timer_set_reg()
382 return kvm_phys_timer_read() - vcpu->kvm->arch.timer.cntvoff; in kvm_arm_timer_get_reg()
481 void kvm_timer_enable(struct kvm *kvm) in kvm_timer_enable() argument
483 if (kvm->arch.timer.enabled) in kvm_timer_enable()
495 kvm->arch.timer.enabled = 1; in kvm_timer_enable()
[all …]
Dtrace.h7 #define TRACE_SYSTEM kvm
58 #define TRACE_INCLUDE_PATH ../../../virt/kvm/arm
Dvgic-v3.c52 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) in vgic_v3_get_lr()
59 vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V2) in vgic_v3_get_lr()
91 switch (vcpu->kvm->arch.vgic.vgic_model) { in vgic_v3_set_lr()
199 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) in vgic_v3_enable()
/linux-4.4.14/arch/arm/include/asm/
Dkvm_host.h164 int kvm_unmap_hva(struct kvm *kvm, unsigned long hva);
165 int kvm_unmap_hva_range(struct kvm *kvm,
167 void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
171 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
172 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
175 static inline void kvm_arch_mmu_notifier_invalidate_page(struct kvm *kvm, in kvm_arch_mmu_notifier_invalidate_page() argument
225 void kvm_mmu_wp_memory_region(struct kvm *kvm, int slot);
227 struct kvm_vcpu *kvm_mpidr_to_vcpu(struct kvm *kvm, unsigned long mpidr);
231 static inline void kvm_arch_sync_events(struct kvm *kvm) {} in kvm_arch_sync_events() argument
Dkvm_mmu.h56 void stage2_unmap_vm(struct kvm *kvm);
57 int kvm_alloc_stage2_pgd(struct kvm *kvm);
58 void kvm_free_stage2_pgd(struct kvm *kvm);
59 int kvm_phys_addr_ioremap(struct kvm *kvm, phys_addr_t guest_ipa,
160 #define kvm_pte_table_empty(kvm, ptep) kvm_page_empty(ptep) argument
161 #define kvm_pmd_table_empty(kvm, pmdp) kvm_page_empty(pmdp) argument
162 #define kvm_pud_table_empty(kvm, pudp) (0) argument
166 static inline void *kvm_get_hwpgd(struct kvm *kvm) in kvm_get_hwpgd() argument
168 return kvm->arch.pgd; in kvm_get_hwpgd()
176 struct kvm;
Dkvm_asm.h83 struct kvm;
98 extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
99 extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
/linux-4.4.14/arch/arm64/include/asm/
Dkvm_host.h209 int kvm_unmap_hva(struct kvm *kvm, unsigned long hva);
210 int kvm_unmap_hva_range(struct kvm *kvm,
212 void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
213 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
214 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
217 static inline void kvm_arch_mmu_notifier_invalidate_page(struct kvm *kvm, in kvm_arch_mmu_notifier_invalidate_page() argument
227 void kvm_mmu_wp_memory_region(struct kvm *kvm, int slot);
235 struct kvm_vcpu *kvm_mpidr_to_vcpu(struct kvm *kvm, unsigned long mpidr);
252 static inline void kvm_arch_sync_events(struct kvm *kvm) {} in kvm_arch_sync_events() argument
Dkvm_mmu.h88 void stage2_unmap_vm(struct kvm *kvm);
89 int kvm_alloc_stage2_pgd(struct kvm *kvm);
90 void kvm_free_stage2_pgd(struct kvm *kvm);
91 int kvm_phys_addr_ioremap(struct kvm *kvm, phys_addr_t guest_ipa,
178 static inline void *kvm_get_hwpgd(struct kvm *kvm)
180 pgd_t *pgd = kvm->arch.pgd;
207 #define kvm_pte_table_empty(kvm, ptep) kvm_page_empty(ptep)
210 #define kvm_pmd_table_empty(kvm, pmdp) (0)
212 #define kvm_pmd_table_empty(kvm, pmdp) \
213 (kvm_page_empty(pmdp) && (!(kvm) || KVM_PREALLOC_LEVEL < 2))
[all …]
Dkvm_asm.h106 struct kvm;
118 extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
119 extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
/linux-4.4.14/arch/x86/include/asm/
Dkvm_host.h773 struct kvm_vcpu *(*vcpu_create)(struct kvm *kvm, unsigned id);
836 void (*hwapic_isr_update)(struct kvm *kvm, int isr);
842 int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
872 void (*sched_in)(struct kvm_vcpu *kvm, int cpu);
890 void (*slot_enable_log_dirty)(struct kvm *kvm,
892 void (*slot_disable_log_dirty)(struct kvm *kvm,
894 void (*flush_log_dirty)(struct kvm *kvm);
895 void (*enable_log_dirty_pt_masked)(struct kvm *kvm,
912 int (*update_pi_irte)(struct kvm *kvm, unsigned int host_irq,
935 void kvm_mmu_slot_remove_write_access(struct kvm *kvm,
[all …]
/linux-4.4.14/include/kvm/
Darm_vgic.h145 int (*init_model)(struct kvm *);
146 int (*map_resources)(struct kvm *, const struct vgic_params *);
325 struct kvm;
328 int kvm_vgic_addr(struct kvm *kvm, unsigned long type, u64 *addr, bool write);
330 int kvm_vgic_map_resources(struct kvm *kvm);
332 void kvm_vgic_early_init(struct kvm *kvm);
333 int kvm_vgic_create(struct kvm *kvm, u32 type);
334 void kvm_vgic_destroy(struct kvm *kvm);
339 int kvm_vgic_inject_irq(struct kvm *kvm, int cpuid, unsigned int irq_num,
341 int kvm_vgic_inject_mapped_irq(struct kvm *kvm, int cpuid,
Darm_arch_timer.h61 void kvm_timer_enable(struct kvm *kvm);
62 void kvm_timer_init(struct kvm *kvm);
/linux-4.4.14/tools/perf/Documentation/
Dperf-kvm.txt1 perf-kvm(1)
6 perf-kvm - Tool to trace/measure kvm guest os
11 'perf kvm' [--host] [--guest] [--guestmount=<path>
14 'perf kvm' [--host] [--guest] [--guestkallsyms=<path> --guestmodules=<path>
16 'perf kvm stat [record|report|live] [<options>]
20 There are a couple of variants of perf kvm:
22 'perf kvm [options] top <command>' to generates and displays
26 'perf kvm record <command>' to record the performance counter profile
28 default behavior of perf kvm as --guest, so if neither --host nor --guest
30 the perf data file name is perf.data.kvm. If you want to record data into
[all …]
/linux-4.4.14/arch/mips/kvm/
Dtlb.c41 pfn_t (*kvm_mips_gfn_to_pfn)(struct kvm *kvm, gfn_t gfn);
62 return vcpu->kvm->arch.commpage_tlb; in kvm_mips_get_commpage_asid()
144 static int kvm_mips_map_page(struct kvm *kvm, gfn_t gfn) in kvm_mips_map_page() argument
149 if (kvm->arch.guest_pmap[gfn] != KVM_INVALID_PAGE) in kvm_mips_map_page()
152 srcu_idx = srcu_read_lock(&kvm->srcu); in kvm_mips_map_page()
153 pfn = kvm_mips_gfn_to_pfn(kvm, gfn); in kvm_mips_map_page()
161 kvm->arch.guest_pmap[gfn] = pfn; in kvm_mips_map_page()
163 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvm_mips_map_page()
173 struct kvm *kvm = vcpu->kvm; in kvm_mips_translate_guest_kseg0_to_hpa() local
183 if (gfn >= kvm->arch.guest_pmap_npages) { in kvm_mips_translate_guest_kseg0_to_hpa()
[all …]
Dmips.c104 static void kvm_mips_init_tlbs(struct kvm *kvm) in kvm_mips_init_tlbs() argument
115 kvm->arch.commpage_tlb = wired; in kvm_mips_init_tlbs()
118 kvm->arch.commpage_tlb); in kvm_mips_init_tlbs()
123 struct kvm *kvm = (struct kvm *)arg; in kvm_mips_init_vm_percpu() local
125 kvm_mips_init_tlbs(kvm); in kvm_mips_init_vm_percpu()
126 kvm_mips_callbacks->vm_init(kvm); in kvm_mips_init_vm_percpu()
130 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) in kvm_arch_init_vm() argument
135 on_each_cpu(kvm_mips_init_vm_percpu, kvm, 1); in kvm_arch_init_vm()
141 void kvm_mips_free_vcpus(struct kvm *kvm) in kvm_mips_free_vcpus() argument
147 for (i = 0; i < kvm->arch.guest_pmap_npages; i++) { in kvm_mips_free_vcpus()
[all …]
DMakefile4 common-objs-y = $(addprefix ../../../virt/kvm/, kvm_main.o coalesced_mmio.o)
6 EXTRA_CFLAGS += -Ivirt/kvm -Iarch/mips/kvm
10 kvm-objs := $(common-objs-y) mips.o emulate.o locore.o \
14 obj-$(CONFIG_KVM) += kvm.o
Dtrace.h16 #define TRACE_SYSTEM kvm
DKconfig4 source "virt/kvm/Kconfig"
Dtrap_emul.c448 static int kvm_trap_emul_vm_init(struct kvm *kvm) in kvm_trap_emul_vm_init() argument
Demulate.c1536 struct kvm *kvm = vcpu->kvm; in kvm_mips_sync_icache() local
1543 if (gfn >= kvm->arch.guest_pmap_npages) { in kvm_mips_sync_icache()
1549 pfn = kvm->arch.guest_pmap[gfn]; in kvm_mips_sync_icache()
/linux-4.4.14/tools/perf/arch/x86/util/
Dkvm-stat.c64 static void mmio_event_decode_key(struct perf_kvm_stat *kvm __maybe_unused, in mmio_event_decode_key()
108 static void ioport_event_decode_key(struct perf_kvm_stat *kvm __maybe_unused, in ioport_event_decode_key()
144 int cpu_isa_init(struct perf_kvm_stat *kvm, const char *cpuid) in cpu_isa_init() argument
147 kvm->exit_reasons = vmx_exit_reasons; in cpu_isa_init()
148 kvm->exit_reasons_isa = "VMX"; in cpu_isa_init()
150 kvm->exit_reasons = svm_exit_reasons; in cpu_isa_init()
151 kvm->exit_reasons_isa = "SVM"; in cpu_isa_init()
DBuild4 libperf-y += kvm-stat.o
/linux-4.4.14/Documentation/virtual/kvm/
Dreview-checklist.txt1 Review checklist for kvm patches
7 2. Patches should be against kvm.git master branch.
10 - the API must be documented in Documentation/virtual/kvm/api.txt
20 7. Emulator changes should be accompanied by unit tests for qemu-kvm.git
21 kvm/test directory.
Dlocking.txt56 mark_page_dirty(vcpu->kvm, gfn1)
153 Name: kvm->mmu_lock
159 Name: kvm->srcu
162 Protects: - kvm->memslots
163 - kvm->buses
166 MMIO/PIO address->device structure mapping (kvm->buses).
Dmmu.txt1 The x86 kvm shadow mmu
4 The mmu (in arch/x86/kvm, files mmu.[ch] and paging_tmpl.h) is responsible
79 using kvm. Userspace defines the translation between guest addresses and user
187 Accessed by both kvm and hardware.
224 Generation number of the page. It is compared with kvm->arch.mmu_valid_gen
298 the description in Documentation/virtual/kvm/locking.txt.
408 To make it be more scalable, kvm maintains a global generation number
409 which is stored in kvm->arch.mmu_valid_gen. Every shadow page stores
425 As mentioned in "Reaction to events" above, kvm will cache MMIO
433 kvm_memslots(kvm)->generation, and increased whenever guest memory info
[all …]
D00-INDEX14 - the x86 kvm shadow mmu.
Dhypercalls.txt21 refer to Documentation/virtual/kvm/s390-diag.txt.
29 For more information refer to Documentation/virtual/kvm/ppc-pv.txt
Dcpuid.txt5 A guest running on a kvm host, can check some of its features using
Dapi.txt7 The kvm API is a set of ioctls that are issued to control various aspects
11 whole kvm subsystem. In addition a system ioctl is used to create
31 The kvm API is centered around file descriptors. An initial
32 open("/dev/kvm") obtains a handle to the kvm subsystem; this handle
42 kinds of tricks are explicitly not supported by kvm. While they will
57 Instead, kvm defines extension identifiers and a facility to query
65 This section describes ioctls that can be used to control kvm guests.
97 This identifies the API version as the stable kvm API. It is not
142 by kvm version and host processor, but does not change otherwise. The
144 kvm adjusts nmsrs to reflect the actual number of msrs and fills in
[all …]
Dnested-vmx.txt49 the "nested=1" option to the kvm-intel module.
77 internals of this structure; This is struct vmcs12 from arch/x86/kvm/vmx.c.
Dppc-pv.txt16 The code for that interface can be found in arch/powerpc/kernel/kvm*
23 compatible property with the value "linux,kvm".
/linux-4.4.14/arch/s390/include/asm/
Dkvm_host.h637 static inline void kvm_arch_sync_events(struct kvm *kvm) {} in kvm_arch_sync_events() argument
640 static inline void kvm_arch_free_memslot(struct kvm *kvm, in kvm_arch_free_memslot() argument
642 static inline void kvm_arch_memslots_updated(struct kvm *kvm, struct kvm_memslots *slots) {} in kvm_arch_memslots_updated() argument
643 static inline void kvm_arch_flush_shadow_all(struct kvm *kvm) {} in kvm_arch_flush_shadow_all() argument
644 static inline void kvm_arch_flush_shadow_memslot(struct kvm *kvm, in kvm_arch_flush_shadow_memslot() argument
/linux-4.4.14/arch/mips/include/asm/
Dkvm_host.h104 extern pfn_t(*kvm_mips_gfn_to_pfn) (struct kvm *kvm, gfn_t gfn);
614 int (*vm_init)(struct kvm *kvm);
837 extern unsigned long kvm_mips_get_ramsize(struct kvm *kvm);
841 static inline void kvm_arch_sync_events(struct kvm *kvm) {} in kvm_arch_sync_events() argument
842 static inline void kvm_arch_free_memslot(struct kvm *kvm, in kvm_arch_free_memslot() argument
844 static inline void kvm_arch_memslots_updated(struct kvm *kvm, struct kvm_memslots *slots) {} in kvm_arch_memslots_updated() argument
845 static inline void kvm_arch_flush_shadow_all(struct kvm *kvm) {} in kvm_arch_flush_shadow_all() argument
846 static inline void kvm_arch_flush_shadow_memslot(struct kvm *kvm, in kvm_arch_flush_shadow_memslot() argument
/linux-4.4.14/arch/tile/kvm/
DKconfig5 source "virt/kvm/Kconfig"
29 a character device node named /dev/kvm.
32 will be called kvm.
/linux-4.4.14/tools/perf/arch/s390/util/
Dkvm-stat.c96 int cpu_isa_init(struct perf_kvm_stat *kvm, const char *cpuid) in cpu_isa_init() argument
99 kvm->exit_reasons = sie_exit_reasons; in cpu_isa_init()
100 kvm->exit_reasons_isa = "SIE"; in cpu_isa_init()
DBuild2 libperf-y += kvm-stat.o
/linux-4.4.14/tools/perf/util/
Dkvm-stat.h59 void (*decode_key)(struct perf_kvm_stat *kvm, struct event_key *key,
119 void exit_event_decode_key(struct perf_kvm_stat *kvm,
134 int cpu_isa_init(struct perf_kvm_stat *kvm, const char *cpuid);
/linux-4.4.14/Documentation/virtual/
D00-INDEX8 kvm/
9 - Kernel Virtual Machine. See also http://linux-kvm.org
/linux-4.4.14/arch/arm64/kernel/
Dasm-offsets.c131 DEFINE(KVM_TIMER_CNTVOFF, offsetof(struct kvm, arch.timer.cntvoff)); in main()
132 DEFINE(KVM_TIMER_ENABLED, offsetof(struct kvm, arch.timer.enabled)); in main()
133 DEFINE(VCPU_KVM, offsetof(struct kvm_vcpu, kvm)); in main()
152 DEFINE(KVM_VTTBR, offsetof(struct kvm, arch.vttbr)); in main()
153 DEFINE(KVM_VGIC_VCTRL, offsetof(struct kvm, arch.vgic.vctrl_base)); in main()
/linux-4.4.14/arch/arm/kernel/
Dasm-offsets.c173 DEFINE(VCPU_KVM, offsetof(struct kvm_vcpu, kvm)); in main()
204 DEFINE(KVM_TIMER_CNTVOFF, offsetof(struct kvm, arch.timer.cntvoff)); in main()
205 DEFINE(KVM_TIMER_ENABLED, offsetof(struct kvm, arch.timer.enabled)); in main()
206 DEFINE(KVM_VGIC_VCTRL, offsetof(struct kvm, arch.vgic.vctrl_base)); in main()
207 DEFINE(KVM_VTTBR, offsetof(struct kvm, arch.vttbr)); in main()
/linux-4.4.14/tools/testing/selftests/rcutorture/doc/
Drcu-test-image.txt34 http://sripathikodi.blogspot.com/2010/02/creating-kvm-bootable-fedora-system.html
38 …/2011/01/07/pci_add_option_rom-failed-to-find-romfile-pxe-rtl8139-bin/ -- "apt-get install kvm-pxe"
/linux-4.4.14/arch/s390/
DKbuild3 obj-$(CONFIG_KVM) += kvm/
DKconfig861 source "arch/s390/kvm/Kconfig"
/linux-4.4.14/tools/testing/selftests/rcutorture/bin/
Dkvm-test-1-run.sh43 T=/tmp/kvm-test-1-run.sh.$$
96 if kvm-build.sh $config_template $builddir $T
Dkvm.sh33 T=/tmp/kvm.sh.$$
400 kvm-recheck.sh $resdir/$ds
Dkvm-recheck.sh42 kvm-recheck-${TORTURE_SUITE}.sh $i
/linux-4.4.14/arch/x86/
DKbuild4 obj-$(CONFIG_KVM) += kvm/
DKconfig2683 source "arch/x86/kvm/Kconfig"
/linux-4.4.14/arch/powerpc/kernel/
Dasm-offsets.c496 DEFINE(VCPU_KVM, offsetof(struct kvm_vcpu, kvm)); in main()
497 DEFINE(KVM_LPID, offsetof(struct kvm, arch.lpid)); in main()
501 DEFINE(KVM_SDR1, offsetof(struct kvm, arch.sdr1)); in main()
502 DEFINE(KVM_HOST_LPID, offsetof(struct kvm, arch.host_lpid)); in main()
503 DEFINE(KVM_HOST_LPCR, offsetof(struct kvm, arch.host_lpcr)); in main()
504 DEFINE(KVM_HOST_SDR1, offsetof(struct kvm, arch.host_sdr1)); in main()
505 DEFINE(KVM_NEED_FLUSH, offsetof(struct kvm, arch.need_tlb_flush.bits)); in main()
506 DEFINE(KVM_ENABLED_HCALLS, offsetof(struct kvm, arch.enabled_hcalls)); in main()
507 DEFINE(KVM_LPCR, offsetof(struct kvm, arch.lpcr)); in main()
508 DEFINE(KVM_VRMA_SLB_V, offsetof(struct kvm, arch.vrma_slb_v)); in main()
[all …]
DMakefile137 obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o
/linux-4.4.14/arch/mips/
DKbuild23 obj-y += kvm/
DKconfig3034 source "arch/mips/kvm/Kconfig"
/linux-4.4.14/include/uapi/asm-generic/
DKbuild.asm4 opt-header += kvm.h
/linux-4.4.14/arch/powerpc/include/uapi/asm/
DKbuild17 header-y += kvm.h
/linux-4.4.14/arch/s390/include/uapi/asm/
DKbuild17 header-y += kvm.h
/linux-4.4.14/tools/testing/ktest/examples/
DREADME19 kvm.conf - A example of a config that is used to test a virtual guest running
/linux-4.4.14/arch/arm64/
DMakefile70 core-$(CONFIG_KVM) += arch/arm64/kvm/
DKconfig816 source "arch/arm64/kvm/Kconfig"
/linux-4.4.14/arch/x86/include/uapi/asm/
DKbuild23 header-y += kvm.h
/linux-4.4.14/arch/x86/kernel/
DMakefile93 obj-$(CONFIG_KVM_GUEST) += kvm.o kvmclock.o
/linux-4.4.14/Documentation/virtual/kvm/devices/
Dvm.txt47 Allows user space to retrieve machine and kvm specific cpu related information:
Ds390_flic.txt24 is defined in usr/include/linux/kvm.h.
/linux-4.4.14/include/uapi/linux/
DKbuild230 ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm.h \
231 $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h),)
232 header-y += kvm.h
/linux-4.4.14/include/trace/events/
Dkvm.h7 #define TRACE_SYSTEM kvm
/linux-4.4.14/Documentation/
Dgdb-kernel-debugging.txt23 o Create a virtual Linux machine for QEMU/KVM (see www.linux-kvm.org and
Dkernel-parameters.txt1755 kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.
1758 kvm.mmu_audit= [KVM] This is a R/W parameter which allows audit
1762 kvm-amd.nested= [KVM,AMD] Allow nested virtualization in KVM/SVM.
1765 kvm-amd.npt= [KVM,AMD] Disable nested paging (virtualized MMU)
1769 kvm-intel.ept= [KVM,Intel] Disable extended page tables
1773 kvm-intel.emulate_invalid_guest_state=
1777 kvm-intel.flexpriority=
1781 kvm-intel.nested=
1785 kvm-intel.unrestricted_guest=
1790 kvm-intel.vpid= [KVM,Intel] Disable Virtual Processor Identification
[all …]
Ddevices.txt449 232 = /dev/kvm Kernel-based virtual machine (hardware virtualization extensions)
/linux-4.4.14/arch/powerpc/
DMakefile235 core-$(CONFIG_KVM) += arch/powerpc/kvm/
DKconfig1095 source "arch/powerpc/kvm/Kconfig"
/linux-4.4.14/arch/arm/
DMakefile281 core-$(CONFIG_KVM_ARM_HOST) += arch/arm/kvm/
DKconfig2171 source "arch/arm/kvm/Kconfig"
/linux-4.4.14/Documentation/vm/
Dhwpoison.txt41 of applications. KVM support requires a recent qemu-kvm release.
/linux-4.4.14/Documentation/ioctl/
Dioctl-number.txt315 0xAE all linux/kvm.h Kernel-based Virtual Machine
316 <mailto:kvm@vger.kernel.org>
/linux-4.4.14/
DMAINTAINERS4706 L: kvm@vger.kernel.org
6058 L: kvm@vger.kernel.org
6059 W: http://www.linux-kvm.org
6060 T: git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
6062 F: Documentation/*/kvm*.txt
6063 F: Documentation/virtual/kvm/
6064 F: arch/*/kvm/
6065 F: arch/x86/kernel/kvm.c
6067 F: arch/*/include/asm/kvm*
6068 F: include/linux/kvm*
[all …]
/linux-4.4.14/arch/tile/
DKconfig496 source "arch/tile/kvm/Kconfig"
/linux-4.4.14/arch/s390/kernel/
Dentry.S605 # 2) if we return to kernel code and kvm is enabled check if we need to
/linux-4.4.14/Documentation/RCU/
DRTFP.txt2440 \url{http://www.mail-archive.com/kvm@vger.kernel.org/msg28640.html}