Home
last modified time | relevance | path

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

/linux-4.1.27/include/linux/
Dkvm_host.h174 int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr,
176 int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx,
217 struct kvm *kvm; member
311 struct kvm *kvm, int irq_source_id, int level,
346 struct kvm { struct
414 static inline struct kvm_vcpu *kvm_get_vcpu(struct kvm *kvm, int i) in kvm_get_vcpu() argument
417 return kvm->vcpus[i]; in kvm_get_vcpu()
420 #define kvm_for_each_vcpu(idx, vcpup, kvm) \ argument
422 idx < atomic_read(&kvm->online_vcpus) && \
423 (vcpup = kvm_get_vcpu(kvm, idx)) != NULL; \
[all …]
Dkvm_types.h20 struct kvm;
/linux-4.1.27/virt/kvm/
Deventfd.c60 struct kvm *kvm; member
77 struct kvm *kvm; member
104 struct kvm *kvm = irqfd->kvm; in irqfd_inject() local
107 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1, in irqfd_inject()
109 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0, in irqfd_inject()
112 kvm_set_irq(kvm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, in irqfd_inject()
125 struct kvm *kvm; in irqfd_resampler_ack() local
130 kvm = resampler->kvm; in irqfd_resampler_ack()
132 kvm_set_irq(kvm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, in irqfd_resampler_ack()
135 idx = srcu_read_lock(&kvm->irq_srcu); in irqfd_resampler_ack()
[all …]
Dkvm_main.c106 static void mark_page_dirty_in_slot(struct kvm *kvm,
151 bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req) in kvm_make_all_cpus_request() argument
161 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_make_all_cpus_request()
184 void kvm_flush_remote_tlbs(struct kvm *kvm) in kvm_flush_remote_tlbs() argument
186 long dirty_count = kvm->tlbs_dirty; in kvm_flush_remote_tlbs()
189 if (kvm_make_all_cpus_request(kvm, KVM_REQ_TLB_FLUSH)) in kvm_flush_remote_tlbs()
190 ++kvm->stat.remote_tlb_flush; in kvm_flush_remote_tlbs()
191 cmpxchg(&kvm->tlbs_dirty, dirty_count, 0); in kvm_flush_remote_tlbs()
196 void kvm_reload_remote_mmus(struct kvm *kvm) in kvm_reload_remote_mmus() argument
198 kvm_make_all_cpus_request(kvm, KVM_REQ_MMU_RELOAD); in kvm_reload_remote_mmus()
[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.c45 int kvm_irq_map_gsi(struct kvm *kvm, in kvm_irq_map_gsi() argument
52 irq_rt = srcu_dereference_check(kvm->irq_routing, &kvm->irq_srcu, in kvm_irq_map_gsi()
53 lockdep_is_held(&kvm->irq_lock)); in kvm_irq_map_gsi()
64 int kvm_irq_map_chip_pin(struct kvm *kvm, unsigned irqchip, unsigned pin) in kvm_irq_map_chip_pin() argument
68 irq_rt = srcu_dereference(kvm->irq_routing, &kvm->irq_srcu); in kvm_irq_map_chip_pin()
72 int kvm_send_userspace_msi(struct kvm *kvm, struct kvm_msi *msi) in kvm_send_userspace_msi() argument
76 if (!irqchip_in_kernel(kvm) || msi->flags != 0) in kvm_send_userspace_msi()
83 return kvm_set_msi(&route, kvm, KVM_USERSPACE_IRQ_SOURCE_ID, 1, false); in kvm_send_userspace_msi()
92 int kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level, in kvm_set_irq() argument
104 idx = srcu_read_lock(&kvm->irq_srcu); in kvm_set_irq()
[all …]
Dasync_pf.c101 kvm_put_kvm(vcpu->kvm); in async_pf_execute()
118 kvm_put_kvm(vcpu->kvm); /* == work->vcpu->kvm */ in kvm_clear_async_pf_completion_queue()
183 kvm_get_kvm(work->vcpu->kvm); in kvm_setup_async_pf()
199 kvm_put_kvm(work->vcpu->kvm); in kvm_setup_async_pf()
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()
266 list_for_each_entry(tmp, &dev->kvm->devices, vm_node) in kvm_vfio_create()
/linux-4.1.27/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 …]
Di8254.c73 static void pit_set_gate(struct kvm *kvm, int channel, u32 val) in pit_set_gate() argument
76 &kvm->arch.vpit->pit_state.channels[channel]; in pit_set_gate()
78 WARN_ON(!mutex_is_locked(&kvm->arch.vpit->pit_state.lock)); in pit_set_gate()
99 static int pit_get_gate(struct kvm *kvm, int channel) in pit_get_gate() argument
101 WARN_ON(!mutex_is_locked(&kvm->arch.vpit->pit_state.lock)); in pit_get_gate()
103 return kvm->arch.vpit->pit_state.channels[channel].gate; in pit_get_gate()
106 static s64 __kpit_elapsed(struct kvm *kvm) in __kpit_elapsed() argument
110 struct kvm_kpit_state *ps = &kvm->arch.vpit->pit_state; in __kpit_elapsed()
130 static s64 kpit_elapsed(struct kvm *kvm, struct kvm_kpit_channel_state *c, in kpit_elapsed() argument
134 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
Dirq_comm.c35 struct kvm *kvm, int irq_source_id, int level, in kvm_set_pic_irq() argument
38 struct kvm_pic *pic = pic_irqchip(kvm); in kvm_set_pic_irq()
43 struct kvm *kvm, int irq_source_id, int level, in kvm_set_ioapic_irq() argument
46 struct kvm_ioapic *ioapic = kvm->arch.vioapic; in kvm_set_ioapic_irq()
56 int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src, in kvm_irq_delivery_to_apic() argument
68 if (kvm_irq_delivery_to_apic_fast(kvm, src, irq, &r, dest_map)) in kvm_irq_delivery_to_apic()
71 kvm_for_each_vcpu(i, vcpu, kvm) { in kvm_irq_delivery_to_apic()
115 struct kvm *kvm, int irq_source_id, int level, bool line_status) in kvm_set_msi() argument
124 return kvm_irq_delivery_to_apic(kvm, NULL, &irq, NULL); in kvm_set_msi()
129 struct kvm *kvm) in kvm_set_msi_inatomic() argument
[all …]
Dassigned-dev.c43 struct kvm *kvm; member
108 kvm_set_irq(assigned_dev->kvm, in kvm_assigned_dev_raise_guest_irq()
113 kvm_set_irq(assigned_dev->kvm, assigned_dev->irq_source_id, in kvm_assigned_dev_raise_guest_irq()
138 int ret = kvm_set_irq_inatomic(assigned_dev->kvm, in kvm_assigned_dev_msi()
165 ret = kvm_set_irq_inatomic(assigned_dev->kvm, in kvm_assigned_dev_msix()
195 kvm_set_irq(dev->kvm, dev->irq_source_id, dev->guest_irq, 0, false); in kvm_assigned_dev_ack_irq()
217 kvm_set_irq(dev->kvm, dev->irq_source_id, in kvm_assigned_dev_ack_irq()
224 static void deassign_guest_irq(struct kvm *kvm, in deassign_guest_irq() argument
228 kvm_unregister_irq_ack_notifier(kvm, in deassign_guest_irq()
231 kvm_set_irq(assigned_dev->kvm, assigned_dev->irq_source_id, in deassign_guest_irq()
[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()
117 pfn = gfn_to_pfn_atomic(vcpu->kvm, gfn); 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
[all …]
Dioapic.h8 struct kvm;
73 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 bool kvm_ioapic_handles_vector(struct kvm *kvm, int vector) in kvm_ioapic_handles_vector() argument
103 struct kvm_ioapic *ioapic = kvm->arch.vioapic; in kvm_ioapic_handles_vector()
114 int kvm_ioapic_init(struct kvm *kvm);
115 void kvm_ioapic_destroy(struct kvm *kvm);
119 int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src,
121 int kvm_get_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state);
[all …]
Dmmu.c226 static unsigned int kvm_current_mmio_generation(struct kvm *kvm) in kvm_current_mmio_generation() argument
228 return kvm_memslots(kvm)->generation & MMIO_GEN_MASK; in kvm_current_mmio_generation()
231 static void mark_mmio_spte(struct kvm *kvm, u64 *sptep, u64 gfn, in mark_mmio_spte() argument
234 unsigned int gen = kvm_current_mmio_generation(kvm); in mark_mmio_spte()
261 static bool set_mmio_spte(struct kvm *kvm, u64 *sptep, gfn_t gfn, in set_mmio_spte() argument
265 mark_mmio_spte(kvm, sptep, gfn, access); in set_mmio_spte()
272 static bool check_mmio_spte(struct kvm *kvm, u64 spte) in check_mmio_spte() argument
276 kvm_gen = kvm_current_mmio_generation(kvm); in check_mmio_spte()
784 static void account_shadowed(struct kvm *kvm, gfn_t gfn) in account_shadowed() argument
790 slot = gfn_to_memslot(kvm, gfn); in account_shadowed()
[all …]
Dirq.h38 struct kvm;
66 struct kvm *kvm; member
76 struct kvm_pic *kvm_create_pic(struct kvm *kvm);
77 void kvm_destroy_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 irqchip_in_kernel(struct kvm *kvm) in irqchip_in_kernel() argument
90 ret = (pic_irqchip(kvm) != NULL); in irqchip_in_kernel()
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 \
16 kvm-$(CONFIG_KVM_DEVICE_ASSIGNMENT) += assigned-dev.o iommu.o
17 kvm-intel-y += vmx.o
18 kvm-amd-y += svm.o
20 obj-$(CONFIG_KVM) += kvm.o
21 obj-$(CONFIG_KVM_INTEL) += kvm-intel.o
[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);
Dx86.c86 #define VM_STAT(x) offsetof(struct kvm, stat.x), KVM_STAT_VM
496 return kvm_read_guest_page(vcpu->kvm, real_gfn, data, offset, len); in kvm_read_guest_page_mmu()
784 if (irqchip_in_kernel(vcpu->kvm)) in kvm_set_cr8()
794 if (irqchip_in_kernel(vcpu->kvm)) in kvm_get_cr8()
1109 static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock) in kvm_write_wall_clock() argument
1119 r = kvm_read_guest(kvm, wall_clock, &version, sizeof(version)); in kvm_write_wall_clock()
1128 kvm_write_guest(kvm, wall_clock, &version, sizeof(version)); in kvm_write_wall_clock()
1138 if (kvm->arch.kvmclock_offset) { in kvm_write_wall_clock()
1139 struct timespec ts = ns_to_timespec(kvm->arch.kvmclock_offset); in kvm_write_wall_clock()
1146 kvm_write_guest(kvm, wall_clock, &wc, sizeof(wc)); in kvm_write_wall_clock()
[all …]
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()
252 struct kvm_ioapic *ioapic = vcpu->kvm->arch.vioapic; in kvm_ioapic_scan_entry()
260 kvm_irq_has_notifier(ioapic->kvm, KVM_IRQCHIP_IOAPIC, index) || in kvm_ioapic_scan_entry()
275 void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) in kvm_vcpu_request_scan_ioapic() argument
277 struct kvm_ioapic *ioapic = kvm->arch.vioapic; in kvm_vcpu_request_scan_ioapic()
281 kvm_make_scan_ioapic_request(kvm); in kvm_vcpu_request_scan_ioapic()
321 kvm_fire_mask_notifiers(ioapic->kvm, KVM_IRQCHIP_IOAPIC, index, mask_after); in ioapic_write_indirect()
325 kvm_vcpu_request_scan_ioapic(ioapic->kvm); in ioapic_write_indirect()
[all …]
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 …]
Dmmu.h75 static inline unsigned int kvm_mmu_available_pages(struct kvm *kvm) in kvm_mmu_available_pages() argument
77 if (kvm->arch.n_max_mmu_pages > kvm->arch.n_used_mmu_pages) in kvm_mmu_available_pages()
78 return kvm->arch.n_max_mmu_pages - in kvm_mmu_available_pages()
79 kvm->arch.n_used_mmu_pages; in kvm_mmu_available_pages()
172 void kvm_mmu_invalidate_zap_all_pages(struct kvm *kvm);
Dirq.c47 return pic_irqchip(v->kvm)->output; /* PIC */ in kvm_cpu_has_extint()
60 if (!irqchip_in_kernel(v->kvm)) in kvm_cpu_has_injectable_intr()
66 if (kvm_apic_vid_enabled(v->kvm)) in kvm_cpu_has_injectable_intr()
78 if (!irqchip_in_kernel(v->kvm)) in kvm_cpu_has_interrupt()
95 return kvm_pic_read_irq(v->kvm); /* PIC */ in kvm_cpu_get_extint()
106 if (!irqchip_in_kernel(v->kvm)) in kvm_cpu_get_interrupt()
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_vcpu_request_scan_ioapic(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 …]
Dpaging_tmpl.h188 drop_spte(vcpu->kvm, spte); in FNAME()
259 mark_page_dirty(vcpu->kvm, table_gfn); in FNAME()
341 host_addr = gfn_to_hva_prot(vcpu->kvm, real_gfn, in FNAME()
514 r = kvm_read_guest_atomic(vcpu->kvm, base_gpa, in FNAME()
518 r = kvm_read_guest_atomic(vcpu->kvm, pte_gpa, in FNAME()
765 mmu_seq = vcpu->kvm->mmu_notifier_seq; in FNAME()
796 spin_lock(&vcpu->kvm->mmu_lock); in FNAME()
797 if (mmu_notifier_retry(vcpu->kvm, mmu_seq)) in FNAME()
808 spin_unlock(&vcpu->kvm->mmu_lock); in FNAME()
813 spin_unlock(&vcpu->kvm->mmu_lock); in FNAME()
[all …]
Dlapic.h66 bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src,
146 static inline bool kvm_apic_vid_enabled(struct kvm *kvm) in kvm_apic_vid_enabled() argument
148 return kvm_x86_ops->vm_has_apicv(kvm); in kvm_apic_vid_enabled()
DKconfig5 source "virt/kvm/Kconfig"
52 a character device node named /dev/kvm.
55 will be called kvm.
69 will be called kvm-intel.
79 will be called kvm-amd.
Dvmx.c789 struct page *page = gfn_to_page(vcpu->kvm, addr >> PAGE_SHIFT); in nested_get_page()
812 static int vmx_vm_has_apicv(struct kvm *kvm);
813 static int vmx_set_tss_addr(struct kvm *kvm, unsigned int addr);
823 static int alloc_identity_pagetable(struct kvm *kvm);
949 static inline bool vm_need_tpr_shadow(struct kvm *kvm) in vm_need_tpr_shadow() argument
951 return (cpu_has_vmx_tpr_shadow()) && (irqchip_in_kernel(kvm)); in vm_need_tpr_shadow()
1065 static inline bool vm_need_virtualize_apic_accesses(struct kvm *kvm) in vm_need_virtualize_apic_accesses() argument
1067 return flexpriority_enabled && irqchip_in_kernel(kvm); in vm_need_virtualize_apic_accesses()
2190 else if (irqchip_in_kernel(vcpu->kvm) && in vmx_set_msr_bitmap()
2398 if (vmx_vm_has_apicv(vmx->vcpu.kvm)) in nested_vmx_setup_ctls_msrs()
[all …]
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;
Dx86.h91 vcpu->arch.mmio_gen = kvm_memslots(vcpu->kvm)->generation; in vcpu_cache_mmio_info()
96 return vcpu->arch.mmio_gen == kvm_memslots(vcpu->kvm)->generation; in vcpu_match_mmio_gen()
Dsvm.c1214 static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id) in svm_create_vcpu() argument
1231 err = kvm_vcpu_init(&svm->vcpu, kvm, id); in svm_create_vcpu()
1958 ret = kvm_read_guest_page(vcpu->kvm, gpa_to_gfn(cr3), &pdpte, in nested_svm_get_tdp_pdptr()
2117 page = gfn_to_page(svm->vcpu.kvm, gpa >> PAGE_SHIFT); in nested_svm_map()
2156 if (kvm_read_guest(svm->vcpu.kvm, gpa, &val, iopm_len)) in nested_svm_intercept_ioio()
2181 if (kvm_read_guest(svm->vcpu.kvm, svm->nested.vmcb_msrpm + offset, &value, 4)) in nested_svm_exit_handled_msr()
2452 if (kvm_read_guest(svm->vcpu.kvm, offset, &value, 4)) in nested_svm_vmrun_msrpm()
3057 if (irqchip_in_kernel(svm->vcpu.kvm)) in cr8_write_interception()
3298 if (!irqchip_in_kernel(svm->vcpu.kvm) && in interrupt_window_interception()
3652 static int svm_vm_has_apicv(struct kvm *kvm) in svm_vm_has_apicv() argument
[all …]
Dtrace.h11 #define TRACE_SYSTEM kvm
958 #define TRACE_INCLUDE_PATH arch/x86/kvm
/linux-4.1.27/tools/perf/
Dbuiltin-kvm.c73 static const char *get_exit_reason(struct perf_kvm_stat *kvm, in get_exit_reason() argument
84 (unsigned long long)exit_code, kvm->exit_reasons_isa); in get_exit_reason()
88 void exit_event_decode_key(struct perf_kvm_stat *kvm, in exit_event_decode_key() argument
92 const char *exit_reason = get_exit_reason(kvm, key->exit_reasons, in exit_event_decode_key()
98 static bool register_kvm_events_ops(struct perf_kvm_stat *kvm) in register_kvm_events_ops() argument
103 if (!strcmp(events_ops->name, kvm->report_event)) { in register_kvm_events_ops()
104 kvm->events_ops = events_ops->ops; in register_kvm_events_ops()
119 static void init_kvm_event_record(struct perf_kvm_stat *kvm) in init_kvm_event_record() argument
124 INIT_LIST_HEAD(&kvm->kvm_events_cache[i]); in init_kvm_event_record()
196 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|
DMANIFEST56 arch/x86/include/uapi/asm/kvm.h
/linux-4.1.27/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()
83 kvm->arch.hpt_virt = hpt; in kvmppc_alloc_hpt()
84 kvm->arch.hpt_order = order; in kvmppc_alloc_hpt()
86 kvm->arch.hpt_npte = 1ul << (order - 4); in kvmppc_alloc_hpt()
88 kvm->arch.hpt_mask = (1ul << (order - 7)) - 1; in kvmppc_alloc_hpt()
91 rev = vmalloc(sizeof(struct revmap_entry) * kvm->arch.hpt_npte); in kvmppc_alloc_hpt()
[all …]
Dbook3s_hv_rm_mmu.c42 static int global_invalidates(struct kvm *kvm, unsigned long flags) in global_invalidates() argument
53 if (kvm->arch.online_vcores == 1 && local_paca->kvm_hstate.kvm_vcpu) in global_invalidates()
61 cpumask_setall(&kvm->arch.need_tlb_flush); in global_invalidates()
63 &kvm->arch.need_tlb_flush); in global_invalidates()
73 void kvmppc_add_revmap_chain(struct kvm *kvm, struct revmap_entry *rev, in kvmppc_add_revmap_chain() argument
81 head = &kvm->arch.revmap[i]; in kvmppc_add_revmap_chain()
84 tail = &kvm->arch.revmap[head->back]; in kvmppc_add_revmap_chain()
101 static void remove_revmap_chain(struct kvm *kvm, long pte_index, in remove_revmap_chain() argument
114 memslot = __gfn_to_memslot(kvm_memslots_raw(kvm), gfn); in remove_revmap_chain()
122 next = real_vmalloc_addr(&kvm->arch.revmap[rev->forw]); in remove_revmap_chain()
[all …]
Dbook3s.c81 if (!is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_interrupt_offset()
89 if (is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_update_int_pending()
103 if (is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_critical_section()
389 return gfn_to_pfn_prot(vcpu->kvm, gfn, writing, writable); in kvmppc_gpa_to_pfn()
457 return vcpu->kvm->arch.kvm_ops->get_sregs(vcpu, sregs); in kvm_arch_vcpu_ioctl_get_sregs()
463 return vcpu->kvm->arch.kvm_ops->set_sregs(vcpu, sregs); in kvm_arch_vcpu_ioctl_set_sregs()
537 r = vcpu->kvm->arch.kvm_ops->get_one_reg(vcpu, id, val); in kvmppc_get_one_reg()
613 r = vcpu->kvm->arch.kvm_ops->set_one_reg(vcpu, id, val); in kvmppc_set_one_reg()
683 vcpu->kvm->arch.kvm_ops->vcpu_load(vcpu, cpu); in kvmppc_core_vcpu_load()
688 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.c297 vcpu->arch.vcore->lpcr, vcpu->kvm->arch.sdr1, in kvmppc_dump_regs()
301 struct kvm_vcpu *kvmppc_find_vcpu(struct kvm *kvm, int id) in kvmppc_find_vcpu() argument
306 mutex_lock(&kvm->lock); in kvmppc_find_vcpu()
307 kvm_for_each_vcpu(r, v, kvm) { in kvmppc_find_vcpu()
313 mutex_unlock(&kvm->lock); in kvmppc_find_vcpu()
359 struct kvm *kvm = vcpu->kvm; in do_h_register_vpa() local
367 tvcpu = kvmppc_find_vcpu(kvm, vcpuid); in do_h_register_vpa()
379 va = kvmppc_pin_guest_page(kvm, vpa, &nb); in do_h_register_vpa()
386 kvmppc_unpin_guest_page(kvm, va, vpa, false); in do_h_register_vpa()
467 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
1254 idx = srcu_read_lock(&vcpu->kvm->srcu); in kvmppc_handle_exit()
1259 if (kvm_is_visible_gfn(vcpu->kvm, gfn)) { in kvmppc_handle_exit()
1278 srcu_read_unlock(&vcpu->kvm->srcu, idx); in kvmppc_handle_exit()
1302 idx = srcu_read_lock(&vcpu->kvm->srcu); in kvmppc_handle_exit()
1307 if (kvm_is_visible_gfn(vcpu->kvm, gfn)) { in kvmppc_handle_exit()
1320 srcu_read_unlock(&vcpu->kvm->srcu, idx); in kvmppc_handle_exit()
1603 return vcpu->kvm->arch.kvm_ops->get_sregs(vcpu, sregs); in kvm_arch_vcpu_ioctl_get_sregs()
1622 return vcpu->kvm->arch.kvm_ops->set_sregs(vcpu, sregs); in kvm_arch_vcpu_ioctl_set_sregs()
1674 r = vcpu->kvm->arch.kvm_ops->get_one_reg(vcpu, id, val); in kvmppc_get_one_reg()
[all …]
Dbook3s_64_mmu_host.c97 struct kvm *kvm = vcpu->kvm; in kvmppc_mmu_map_page() local
103 mmu_seq = kvm->mmu_notifier_seq; in kvmppc_mmu_map_page()
138 mark_page_dirty(vcpu->kvm, gfn); in kvmppc_mmu_map_page()
160 spin_lock(&kvm->mmu_lock); in kvmppc_mmu_map_page()
161 if (!cpte || mmu_notifier_retry(kvm, mmu_seq)) { in kvmppc_mmu_map_page()
207 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.c232 icp = kvmppc_xics_find_server(xics->kvm, state->server); in icp_rm_deliver_irq()
389 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_xirr()
428 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_ipi()
441 icp = kvmppc_xics_find_server(vcpu->kvm, server); in kvmppc_rm_h_ipi()
514 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_cppr()
575 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_eoi()
621 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.c439 static struct kvm_vcpu *kvmppc_core_vcpu_create_e500(struct kvm *kvm, in kvmppc_core_vcpu_create_e500() argument
453 err = kvm_vcpu_init(vcpu, kvm, id); in kvmppc_core_vcpu_create_e500()
493 static int kvmppc_core_init_vm_e500(struct kvm *kvm) in kvmppc_core_init_vm_e500() argument
498 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.c211 mark_page_dirty(vcpu->kvm, orig_pte->raddr >> PAGE_SHIFT); in kvmppc_mmu_map_page()
De500_emulate.c75 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.1.27/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_timer_init(kvm); in kvm_arch_init_vm()
131 kvm->arch.vmid_gen = 0; in kvm_arch_init_vm()
134 kvm->arch.max_vcpus = kvm_vgic_get_max_vcpus(); in kvm_arch_init_vm()
138 kvm_free_stage2_pgd(kvm); in kvm_arch_init_vm()
153 void kvm_arch_destroy_vm(struct kvm *kvm) in kvm_arch_destroy_vm() argument
157 kvm_free_stage2_pgd(kvm); in kvm_arch_destroy_vm()
160 if (kvm->vcpus[i]) { in kvm_arch_destroy_vm()
[all …]
Dpsci.c69 struct kvm *kvm = source_vcpu->kvm; in kvm_psci_vcpu_on() local
80 vcpu = kvm_mpidr_to_vcpu(kvm, cpu_id); in kvm_psci_vcpu_on()
132 struct kvm *kvm = vcpu->kvm; in kvm_psci_vcpu_affinity_info() local
150 kvm_for_each_vcpu(i, tmp, kvm) { in kvm_psci_vcpu_affinity_info()
175 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
20 obj-y += kvm-arm.o init.o interrupts.o
DKconfig5 source "virt/kvm/Kconfig"
39 a character device node named /dev/kvm.
Dtrace.h7 #define TRACE_SYSTEM kvm
323 #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.1.27/arch/s390/kvm/
Dkvm-s390.c160 int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) in kvm_vm_ioctl_check_extension() argument
211 static void kvm_s390_sync_dirty_log(struct kvm *kvm, in kvm_s390_sync_dirty_log() argument
216 struct gmap *gmap = kvm->arch.gmap; in kvm_s390_sync_dirty_log()
225 mark_page_dirty(kvm, cur_gfn); in kvm_s390_sync_dirty_log()
234 int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, in kvm_vm_ioctl_get_dirty_log() argument
242 mutex_lock(&kvm->slots_lock); in kvm_vm_ioctl_get_dirty_log()
248 memslot = id_to_memslot(kvm->memslots, log->slot); in kvm_vm_ioctl_get_dirty_log()
253 kvm_s390_sync_dirty_log(kvm, memslot); in kvm_vm_ioctl_get_dirty_log()
254 r = kvm_get_dirty_log(kvm, log, &is_dirty); in kvm_vm_ioctl_get_dirty_log()
265 mutex_unlock(&kvm->slots_lock); in kvm_vm_ioctl_get_dirty_log()
[all …]
Dkvm-s390.h38 debug_sprintf_event(d_vcpu->kvm->arch.dbf, d_loglevel, \
49 static inline int kvm_is_ucontrol(struct kvm *kvm) in kvm_is_ucontrol() argument
52 if (kvm->arch.gmap) in kvm_is_ucontrol()
146 static inline int test_kvm_facility(struct kvm *kvm, unsigned long nr) in test_kvm_facility() argument
148 return __test_facility(nr, kvm->arch.model.fac->mask) && in test_kvm_facility()
149 __test_facility(nr, kvm->arch.model.fac->list); in test_kvm_facility()
164 static inline int kvm_s390_user_cpu_state_ctrl(struct kvm *kvm) in kvm_s390_user_cpu_state_ctrl() argument
166 return kvm->arch.user_cpu_state_ctrl != 0; in kvm_s390_user_cpu_state_ctrl()
174 void kvm_s390_clear_float_irqs(struct kvm *kvm);
175 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.c111 return vcpu->kvm->arch.float_int.pending_irqs; in pending_floating_irqs()
157 vcpu->kvm->arch.float_int.mchk.cr14)) in deliverable_irqs()
330 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_machine_check()
609 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_service()
643 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_pfault_done()
682 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_virtio()
734 fi = &vcpu->kvm->arch.float_int; in __deliver_io()
800 uint8_t sigp_ctrl = vcpu->kvm->arch.sca->cpu[vcpu->vcpu_id].sigp_ctrl; in kvm_s390_ext_call_pending()
867 srcu_read_unlock(&vcpu->kvm->srcu, vcpu->srcu_idx); in kvm_s390_handle_wait()
870 vcpu->srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); 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
241 TP_PROTO(void *kvm),
242 TP_ARGS(kvm),
245 __field(void *, kvm)
249 __entry->kvm = kvm;
253 __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.c102 if (kvm_is_error_gpa(vcpu->kvm, parm.token_addr)) in __diag_page_ref_service()
151 struct kvm *kvm = vcpu->kvm; in __diag_time_slice_end_directed() local
163 kvm_for_each_vcpu(i, tcpu, kvm) in __diag_time_slice_end_directed()
189 if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm)) in __diag_ipl_functions()
206 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.c58 mutex_lock(&vcpu->kvm->lock); in handle_set_clock()
59 kvm_for_each_vcpu(i, cpup, vcpu->kvm) in handle_set_clock()
61 mutex_unlock(&vcpu->kvm->lock); in handle_set_clock()
97 if (kvm_is_error_gpa(vcpu->kvm, address)) in handle_set_prefix()
197 wait_event(vcpu->kvm->arch.ipte_wq, !ipte_lock_held(vcpu)); in handle_ipte_interlock()
218 if (kvm_is_error_gpa(vcpu->kvm, addr)) in handle_test_block()
224 if (kvm_clear_guest(vcpu->kvm, addr, PAGE_SIZE)) in handle_test_block()
244 inti = kvm_s390_get_io_int(vcpu->kvm, vcpu->arch.sie_block->gcr[6], 0); in handle_tpi()
287 if (kvm_s390_reinject_io_int(vcpu->kvm, inti)) { in handle_tpi()
302 inti = kvm_s390_get_io_int(vcpu->kvm, isc_mask, in handle_tsch()
[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()
297 struct kvm_vcpu *dst_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr); in handle_sigp_dst()
372 if (!vcpu->kvm->arch.user_sigp) in handle_sigp_order_in_user_space()
480 dest_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr); in kvm_s390_handle_sigp_pei()
Dtrace.h10 #define TRACE_SYSTEM kvm
Dintercept.c98 if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm)) in handle_stop()
/linux-4.1.27/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,
161 extern void kvmppc_invalidate_hpte(struct kvm *kvm, __be64 *hptep,
163 void kvmppc_clear_ref_hpte(struct kvm *kvm, __be64 *hptep,
165 extern void *kvmppc_pin_guest_page(struct kvm *kvm, unsigned long addr,
167 extern void kvmppc_unpin_guest_page(struct kvm *kvm, void *addr,
169 extern long kvmppc_do_h_enter(struct kvm *kvm, unsigned long flags,
172 extern long kvmppc_do_h_remove(struct kvm *kvm, unsigned long flags,
175 extern long kvmppc_hv_get_dirty_log(struct kvm *kvm,
[all …]
Dkvm_host.h56 extern int kvm_unmap_hva(struct kvm *kvm, unsigned long hva);
57 extern int kvm_unmap_hva_range(struct kvm *kvm,
59 extern int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
60 extern int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
61 extern void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
63 static inline void kvm_arch_mmu_notifier_invalidate_page(struct kvm *kvm, in kvm_arch_mmu_notifier_invalidate_page() argument
178 struct kvm *kvm; member
288 struct kvm *kvm; member
700 static inline void kvm_arch_sync_events(struct kvm *kvm) {} in kvm_arch_sync_events() argument
701 static inline void kvm_arch_memslots_updated(struct kvm *kvm) {} 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); in kvm_memslots_raw()
436 extern void kvmppc_mmu_debugfs_init(struct kvm *kvm);
/linux-4.1.27/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
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 reset.o sys_regs.o sys_regs_generic_v8.o
[all …]
Dtrace.h7 #define TRACE_SYSTEM kvm
DKconfig5 source "virt/kvm/Kconfig"
/linux-4.1.27/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.c93 vcpu->kvm->arch.vgic.vm_ops.add_sgi_source(vcpu, irq, source); in add_sgi_source()
98 return vcpu->kvm->arch.vgic.vm_ops.queue_sgi(vcpu, irq); in queue_sgi()
101 int kvm_vgic_map_resources(struct kvm *kvm) in kvm_vgic_map_resources() argument
103 return kvm->arch.vgic.vm_ops.map_resources(kvm, vgic); in kvm_vgic_map_resources()
248 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_edge()
257 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_enabled()
264 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_queued()
271 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_active()
278 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_set_queued()
285 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()
81 vcpu->kvm->arch.vgic.enabled = !!(reg & GICD_CTLR_ENABLE_SS_G1); in handle_mmio_ctlr()
82 vgic_update_state(vcpu->kvm); in handle_mmio_ctlr()
100 reg = (min(vcpu->kvm->arch.vgic.nr_irqs, 1024) >> 5) - 1; in handle_mmio_typer()
127 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_enable_reg_dist()
141 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_enable_reg_dist()
155 return vgic_handle_set_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_pending_reg_dist()
168 return vgic_handle_clear_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_pending_reg_dist()
188 reg = vgic_bytemap_get_reg(&vcpu->kvm->arch.vgic.irq_priority, in handle_mmio_priority_reg_dist()
207 reg = vgic_bitmap_get_reg(&vcpu->kvm->arch.vgic.irq_cfg, in handle_mmio_cfg_reg_dist()
[all …]
Darch_timer.c68 ret = kvm_vgic_inject_irq(vcpu->kvm, vcpu->vcpu_id, in kvm_timer_inject_irq()
124 now = kvm_phys_timer_read() - vcpu->kvm->arch.timer.cntvoff; in kvm_timer_should_fire()
180 now = kvm_phys_timer_read() - vcpu->kvm->arch.timer.cntvoff; in kvm_timer_sync_hwstate()
224 vcpu->kvm->arch.timer.cntvoff = kvm_phys_timer_read() - value; in kvm_arm_timer_set_reg()
243 return kvm_phys_timer_read() - vcpu->kvm->arch.timer.cntvoff; in kvm_arm_timer_get_reg()
340 void kvm_timer_enable(struct kvm *kvm) in kvm_timer_enable() argument
342 if (kvm->arch.timer.enabled) in kvm_timer_enable()
354 kvm->arch.timer.enabled = 1; in kvm_timer_enable()
357 void kvm_timer_init(struct kvm *kvm) in kvm_timer_init() argument
359 kvm->arch.timer.cntvoff = kvm_phys_timer_read(); in kvm_timer_init()
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()
87 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) in vgic_v3_set_lr()
187 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) in vgic_v3_enable()
/linux-4.1.27/arch/arm/include/asm/
Dkvm_host.h163 int kvm_unmap_hva(struct kvm *kvm, unsigned long hva);
164 int kvm_unmap_hva_range(struct kvm *kvm,
166 void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
170 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
171 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
174 static inline void kvm_arch_mmu_notifier_invalidate_page(struct kvm *kvm, in kvm_arch_mmu_notifier_invalidate_page() argument
229 void kvm_mmu_wp_memory_region(struct kvm *kvm, int slot);
231 struct kvm_vcpu *kvm_mpidr_to_vcpu(struct kvm *kvm, unsigned long mpidr);
235 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.1.27/arch/arm64/include/asm/
Dkvm_host.h178 int kvm_unmap_hva(struct kvm *kvm, unsigned long hva);
179 int kvm_unmap_hva_range(struct kvm *kvm,
181 void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
182 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
183 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
186 static inline void kvm_arch_mmu_notifier_invalidate_page(struct kvm *kvm, in kvm_arch_mmu_notifier_invalidate_page() argument
196 void kvm_mmu_wp_memory_region(struct kvm *kvm, int slot);
204 struct kvm_vcpu *kvm_mpidr_to_vcpu(struct kvm *kvm, unsigned long mpidr);
249 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.h116 struct kvm;
128 extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
129 extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
/linux-4.1.27/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.1.27/arch/x86/include/asm/
Dkvm_host.h712 struct kvm_vcpu *(*vcpu_create)(struct kvm *kvm, unsigned id);
773 int (*vm_has_apicv)(struct kvm *kvm);
775 void (*hwapic_isr_update)(struct kvm *kvm, int isr);
781 int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
813 void (*sched_in)(struct kvm_vcpu *kvm, int cpu);
831 void (*slot_enable_log_dirty)(struct kvm *kvm,
833 void (*slot_disable_log_dirty)(struct kvm *kvm,
835 void (*flush_log_dirty)(struct kvm *kvm);
836 void (*enable_log_dirty_pt_masked)(struct kvm *kvm,
871 void kvm_mmu_slot_remove_write_access(struct kvm *kvm,
[all …]
/linux-4.1.27/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.c103 static void kvm_mips_init_tlbs(struct kvm *kvm) in kvm_mips_init_tlbs() argument
114 kvm->arch.commpage_tlb = wired; in kvm_mips_init_tlbs()
117 kvm->arch.commpage_tlb); in kvm_mips_init_tlbs()
122 struct kvm *kvm = (struct kvm *)arg; in kvm_mips_init_vm_percpu() local
124 kvm_mips_init_tlbs(kvm); in kvm_mips_init_vm_percpu()
125 kvm_mips_callbacks->vm_init(kvm); in kvm_mips_init_vm_percpu()
129 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) in kvm_arch_init_vm() argument
134 on_each_cpu(kvm_mips_init_vm_percpu, kvm, 1); in kvm_arch_init_vm()
140 void kvm_mips_free_vcpus(struct kvm *kvm) in kvm_mips_free_vcpus() argument
146 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.1.27/include/kvm/
Darm_vgic.h146 int (*init_model)(struct kvm *);
147 int (*map_resources)(struct kvm *, const struct vgic_params *);
313 struct kvm;
316 int kvm_vgic_addr(struct kvm *kvm, unsigned long type, u64 *addr, bool write);
318 int kvm_vgic_map_resources(struct kvm *kvm);
320 int kvm_vgic_create(struct kvm *kvm, u32 type);
321 void kvm_vgic_destroy(struct kvm *kvm);
325 int kvm_vgic_inject_irq(struct kvm *kvm, int cpuid, unsigned int irq_num,
Darm_arch_timer.h58 void kvm_timer_enable(struct kvm *kvm);
59 void kvm_timer_init(struct kvm *kvm);
/linux-4.1.27/Documentation/s390/
Dkvm.txt2 The kvm module is currently in EXPERIMENTAL state for s390. This means that
9 This Documentation describes the unique ioctl calls to /dev/kvm, the resulting
10 kvm-vm file descriptors, and the kvm-vcpu file descriptors that differ from x86.
12 1. ioctl calls to /dev/kvm
27 see also: include/linux/kvm.h
39 2. ioctl calls to the kvm-vm file descriptor
47 * kvm does only allow exactly one memory slot on s390, which has to start
58 In addition, on s390 the following architecture specific ioctls for the kvm-vm
62 see also: include/linux/kvm.h
65 Only some interrupt types defined in include/linux/kvm.h make sense when
[all …]
D00-INDEX19 kvm.txt
20 - ioctl calls to /dev/kvm on s390.
/linux-4.1.27/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()
DBuild3 libperf-y += kvm-stat.o
/linux-4.1.27/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
181 Accessed by both kvm and hardware.
218 Generation number of the page. It is compared with kvm->arch.mmu_valid_gen
292 the description in Documentation/virtual/kvm/locking.txt.
402 To make it be more scalable, kvm maintains a global generation number
403 which is stored in kvm->arch.mmu_valid_gen. Every shadow page stores
419 As mentioned in "Reaction to events" above, kvm will cache MMIO
427 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.1.27/arch/s390/include/asm/
Dkvm_host.h632 static inline void kvm_arch_sync_events(struct kvm *kvm) {} in kvm_arch_sync_events() argument
635 static inline void kvm_arch_free_memslot(struct kvm *kvm, in kvm_arch_free_memslot() argument
637 static inline void kvm_arch_memslots_updated(struct kvm *kvm) {} in kvm_arch_memslots_updated() argument
638 static inline void kvm_arch_flush_shadow_all(struct kvm *kvm) {} in kvm_arch_flush_shadow_all() argument
639 static inline void kvm_arch_flush_shadow_memslot(struct kvm *kvm, in kvm_arch_flush_shadow_memslot() argument
/linux-4.1.27/arch/mips/include/asm/
Dkvm_host.h103 extern pfn_t(*kvm_mips_gfn_to_pfn) (struct kvm *kvm, gfn_t gfn);
612 int (*vm_init)(struct kvm *kvm);
835 extern unsigned long kvm_mips_get_ramsize(struct kvm *kvm);
839 static inline void kvm_arch_sync_events(struct kvm *kvm) {} in kvm_arch_sync_events() argument
840 static inline void kvm_arch_free_memslot(struct kvm *kvm, in kvm_arch_free_memslot() argument
842 static inline void kvm_arch_memslots_updated(struct kvm *kvm) {} in kvm_arch_memslots_updated() argument
843 static inline void kvm_arch_flush_shadow_all(struct kvm *kvm) {} in kvm_arch_flush_shadow_all() argument
844 static inline void kvm_arch_flush_shadow_memslot(struct kvm *kvm, in kvm_arch_flush_shadow_memslot() argument
/linux-4.1.27/arch/tile/kvm/
DKconfig5 source "virt/kvm/Kconfig"
29 a character device node named /dev/kvm.
32 will be called kvm.
/linux-4.1.27/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.1.27/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.1.27/Documentation/virtual/
D00-INDEX8 kvm/
9 - Kernel Virtual Machine. See also http://linux-kvm.org
/linux-4.1.27/arch/arm64/kernel/
Dasm-offsets.c124 DEFINE(KVM_TIMER_CNTVOFF, offsetof(struct kvm, arch.timer.cntvoff)); in main()
125 DEFINE(KVM_TIMER_ENABLED, offsetof(struct kvm, arch.timer.enabled)); in main()
126 DEFINE(VCPU_KVM, offsetof(struct kvm_vcpu, kvm)); in main()
148 DEFINE(KVM_VTTBR, offsetof(struct kvm, arch.vttbr)); in main()
149 DEFINE(KVM_VGIC_VCTRL, offsetof(struct kvm, arch.vgic.vctrl_base)); in main()
/linux-4.1.27/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.1.27/drivers/s390/
DMakefile5 obj-y += cio/ block/ char/ crypto/ net/ scsi/ kvm/
/linux-4.1.27/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.1.27/arch/s390/
DKbuild3 obj-$(CONFIG_KVM) += kvm/
DKconfig782 source "arch/s390/kvm/Kconfig"
/linux-4.1.27/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.$$
387 kvm-recheck.sh $resdir/$ds
Dkvm-recheck.sh42 kvm-recheck-${TORTURE_SUITE}.sh $i
/linux-4.1.27/arch/x86/
DKbuild1 obj-$(CONFIG_KVM) += kvm/
DKconfig2594 source "arch/x86/kvm/Kconfig"
/linux-4.1.27/arch/powerpc/kernel/
Dasm-offsets.c497 DEFINE(VCPU_KVM, offsetof(struct kvm_vcpu, kvm)); in main()
498 DEFINE(KVM_LPID, offsetof(struct kvm, arch.lpid)); in main()
502 DEFINE(KVM_SDR1, offsetof(struct kvm, arch.sdr1)); in main()
503 DEFINE(KVM_HOST_LPID, offsetof(struct kvm, arch.host_lpid)); in main()
504 DEFINE(KVM_HOST_LPCR, offsetof(struct kvm, arch.host_lpcr)); in main()
505 DEFINE(KVM_HOST_SDR1, offsetof(struct kvm, arch.host_sdr1)); in main()
506 DEFINE(KVM_NEED_FLUSH, offsetof(struct kvm, arch.need_tlb_flush.bits)); in main()
507 DEFINE(KVM_ENABLED_HCALLS, offsetof(struct kvm, arch.enabled_hcalls)); in main()
508 DEFINE(KVM_LPCR, offsetof(struct kvm, arch.lpcr)); in main()
509 DEFINE(KVM_VRMA_SLB_V, offsetof(struct kvm, arch.vrma_slb_v)); in main()
[all …]
DMakefile136 obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o
/linux-4.1.27/arch/mips/
DKbuild22 obj-y += kvm/
DKconfig2897 source "arch/mips/kvm/Kconfig"
/linux-4.1.27/include/uapi/asm-generic/
DKbuild.asm4 opt-header += kvm.h
/linux-4.1.27/arch/powerpc/include/uapi/asm/
DKbuild16 header-y += kvm.h
/linux-4.1.27/arch/arm64/
DMakefile53 core-$(CONFIG_KVM) += arch/arm64/kvm/
DKconfig788 source "arch/arm64/kvm/Kconfig"
/linux-4.1.27/arch/s390/include/uapi/asm/
DKbuild17 header-y += kvm.h
/linux-4.1.27/tools/testing/ktest/examples/
DREADME19 kvm.conf - A example of a config that is used to test a virtual guest running
/linux-4.1.27/arch/x86/include/uapi/asm/
DKbuild23 header-y += kvm.h
/linux-4.1.27/include/uapi/linux/
DKbuild227 ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm.h \
228 $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h),)
229 header-y += kvm.h
/linux-4.1.27/arch/x86/kernel/
DMakefile94 obj-$(CONFIG_KVM_GUEST) += kvm.o kvmclock.o
/linux-4.1.27/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.1.27/include/trace/events/
Dkvm.h7 #define TRACE_SYSTEM kvm
/linux-4.1.27/Documentation/
Dgdb-kernel-debugging.txt23 o Create a virtual Linux machine for QEMU/KVM (see www.linux-kvm.org and
Dkernel-parameters.txt1690 kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.
1693 kvm.mmu_audit= [KVM] This is a R/W parameter which allows audit
1697 kvm-amd.nested= [KVM,AMD] Allow nested virtualization in KVM/SVM.
1700 kvm-amd.npt= [KVM,AMD] Disable nested paging (virtualized MMU)
1704 kvm-intel.ept= [KVM,Intel] Disable extended page tables
1708 kvm-intel.emulate_invalid_guest_state=
1712 kvm-intel.flexpriority=
1716 kvm-intel.nested=
1720 kvm-intel.unrestricted_guest=
1725 kvm-intel.vpid= [KVM,Intel] Disable Virtual Processor Identification
[all …]
Ddevices.txt449 232 = /dev/kvm Kernel-based virtual machine (hardware virtualization extensions)
/linux-4.1.27/arch/powerpc/
DMakefile233 core-$(CONFIG_KVM) += arch/powerpc/kvm/
DKconfig1092 source "arch/powerpc/kvm/Kconfig"
/linux-4.1.27/arch/arm/
DMakefile273 core-$(CONFIG_KVM_ARM_HOST) += arch/arm/kvm/
DKconfig2122 source "arch/arm/kvm/Kconfig"
/linux-4.1.27/Documentation/vm/
Dhwpoison.txt41 of applications. KVM support requires a recent qemu-kvm release.
/linux-4.1.27/Documentation/ioctl/
Dioctl-number.txt308 0xAE all linux/kvm.h Kernel-based Virtual Machine
309 <mailto:kvm@vger.kernel.org>
/linux-4.1.27/
DMAINTAINERS4368 L: kvm@vger.kernel.org
5652 L: kvm@vger.kernel.org
5653 W: http://www.linux-kvm.org
5654 T: git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
5656 F: Documentation/*/kvm*.txt
5657 F: Documentation/virtual/kvm/
5658 F: arch/*/kvm/
5659 F: arch/x86/kernel/kvm.c
5661 F: arch/*/include/asm/kvm*
5662 F: include/linux/kvm*
[all …]
/linux-4.1.27/arch/tile/
DKconfig473 source "arch/tile/kvm/Kconfig"
/linux-4.1.27/arch/s390/kernel/
Dentry.S532 # 2) if we return to kernel code and kvm is enabled check if we need to
/linux-4.1.27/Documentation/RCU/
DRTFP.txt2440 \url{http://www.mail-archive.com/kvm@vger.kernel.org/msg28640.html}