Searched refs:pv_ops (Results 1 – 15 of 15) sorted by relevance
80 pv_ops.lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath; in hv_init_spinlocks()81 pv_ops.lock.queued_spin_unlock = PV_CALLEE_SAVE(__pv_queued_spin_unlock); in hv_init_spinlocks()82 pv_ops.lock.wait = hv_qlock_wait; in hv_init_spinlocks()83 pv_ops.lock.kick = hv_qlock_kick; in hv_init_spinlocks()84 pv_ops.lock.vcpu_is_preempted = PV_CALLEE_SAVE(hv_vcpu_is_preempted); in hv_init_spinlocks()
242 pv_ops.mmu.flush_tlb_multi = hyperv_flush_tlb_multi; in hyperv_setup_mmu_ops()243 pv_ops.mmu.tlb_remove_table = tlb_remove_table; in hyperv_setup_mmu_ops()
22 (hypervisor,下文简称超级管理器),需要不同的二进制内核,这个限制已经被pv_ops移23 除了。Linux pv_ops是一个虚拟化API,它能够支持不同的管理程序。它允许每个管理程序27 pv_ops提供了一组函数指针,代表了与低级关键指令和各领域高级功能相对应的操作。30 pv_ops操作被分为三类:
139 pv_ops.lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath; in xen_init_spinlocks()140 pv_ops.lock.queued_spin_unlock = in xen_init_spinlocks()142 pv_ops.lock.wait = xen_qlock_wait; in xen_init_spinlocks()143 pv_ops.lock.kick = xen_qlock_kick; in xen_init_spinlocks()144 pv_ops.lock.vcpu_is_preempted = PV_CALLEE_SAVE(xen_vcpu_stolen); in xen_init_spinlocks()
1013 pv_ops.irq.save_fl = __PV_IS_CALLEE_SAVE(xen_save_fl_direct); in xen_setup_vcpu_info_placement()1014 pv_ops.irq.irq_disable = in xen_setup_vcpu_info_placement()1016 pv_ops.irq.irq_enable = in xen_setup_vcpu_info_placement()1018 pv_ops.mmu.read_cr2 = in xen_setup_vcpu_info_placement()1178 pv_ops.cpu.write_gdt_entry = xen_write_gdt_entry_boot; in xen_setup_gdt()1179 pv_ops.cpu.load_gdt = xen_load_gdt_boot; in xen_setup_gdt()1183 pv_ops.cpu.write_gdt_entry = xen_write_gdt_entry; in xen_setup_gdt()1184 pv_ops.cpu.load_gdt = xen_load_gdt; in xen_setup_gdt()1214 pv_ops.cpu = xen_cpu_ops; in xen_start_kernel()
2055 pv_ops.mmu.set_pte = xen_set_pte; in xen_post_allocator_init()2056 pv_ops.mmu.set_pmd = xen_set_pmd; in xen_post_allocator_init()2057 pv_ops.mmu.set_pud = xen_set_pud; in xen_post_allocator_init()2058 pv_ops.mmu.set_p4d = xen_set_p4d; in xen_post_allocator_init()2062 pv_ops.mmu.alloc_pte = xen_alloc_pte; in xen_post_allocator_init()2063 pv_ops.mmu.alloc_pmd = xen_alloc_pmd; in xen_post_allocator_init()2064 pv_ops.mmu.release_pte = xen_release_pte; in xen_post_allocator_init()2065 pv_ops.mmu.release_pmd = xen_release_pmd; in xen_post_allocator_init()2066 pv_ops.mmu.alloc_pud = xen_alloc_pud; in xen_post_allocator_init()2067 pv_ops.mmu.release_pud = xen_release_pud; in xen_post_allocator_init()[all …]
76 pv_ops.mmu.exit_mmap = xen_hvm_exit_mmap; in xen_hvm_init_mmu_ops()
108 pv_ops.irq = xen_irq_ops; in xen_init_irq_ops()
9 different hypervisors, this restriction was removed with pv_ops.10 Linux pv_ops is a virtualization API which enables support for different15 pv_ops provides a set of function pointers which represent operations21 pv_ops operations are classified into three categories:
20 return pv_ops.lock.queued_spin_unlock.func == in pv_is_native_spin_unlock()32 return pv_ops.lock.vcpu_is_preempted.func == in pv_is_native_vcpu_is_preempted()
297 pv_ops.cpu.io_delay = kvm_io_delay; in paravirt_ops_setup()720 pv_ops.mmu.flush_tlb_multi = kvm_flush_tlb_multi; in kvm_guest_init()721 pv_ops.mmu.tlb_remove_table = tlb_remove_table; in kvm_guest_init()965 pv_ops.lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath; in kvm_spinlock_init()966 pv_ops.lock.queued_spin_unlock = in kvm_spinlock_init()968 pv_ops.lock.wait = kvm_wait; in kvm_spinlock_init()969 pv_ops.lock.kick = kvm_kick_cpu; in kvm_spinlock_init()972 pv_ops.lock.vcpu_is_preempted = in kvm_spinlock_init()
109 void *opfunc = *((void **)&pv_ops + type); in paravirt_patch()241 struct paravirt_patch_template pv_ops = { variable382 EXPORT_SYMBOL(pv_ops);
55 pv_ops.cpu.io_delay(); in slow_down_io()57 pv_ops.cpu.io_delay(); in slow_down_io()58 pv_ops.cpu.io_delay(); in slow_down_io()59 pv_ops.cpu.io_delay(); in slow_down_io()576 pv_ops.mmu.set_fixmap(idx, phys, flags); in __set_fixmap()755 call PARA_INDIRECT(pv_ops+PV_IRQ_save_fl);)
273 extern struct paravirt_patch_template pv_ops;281 [paravirt_opptr] "i" (&(pv_ops.op))426 #define PVOP_TEST_NULL(op) BUG_ON(pv_ops.op == NULL)428 #define PVOP_TEST_NULL(op) ((void)pv_ops.op)
332 pv_ops.cpu.io_delay = paravirt_nop; in vmware_paravirt_ops_setup()