| /Linux-v5.10/arch/x86/hyperv/ |
| D | hv_spinlock.c | 76 pv_ops.lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath; in hv_init_spinlocks() 77 pv_ops.lock.queued_spin_unlock = PV_CALLEE_SAVE(__pv_queued_spin_unlock); in hv_init_spinlocks() 78 pv_ops.lock.wait = hv_qlock_wait; in hv_init_spinlocks() 79 pv_ops.lock.kick = hv_qlock_kick; in hv_init_spinlocks() 80 pv_ops.lock.vcpu_is_preempted = PV_CALLEE_SAVE(hv_vcpu_is_preempted); in hv_init_spinlocks()
|
| D | mmu.c | 236 pv_ops.mmu.flush_tlb_others = hyperv_flush_tlb_others; in hyperv_setup_mmu_ops() 237 pv_ops.mmu.tlb_remove_table = tlb_remove_table; in hyperv_setup_mmu_ops()
|
| /Linux-v5.10/arch/x86/xen/ |
| D | spinlock.c | 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()
|
| D | enlighten_pv.c | 1004 pv_ops.irq.save_fl = __PV_IS_CALLEE_SAVE(xen_save_fl_direct); in xen_setup_vcpu_info_placement() 1005 pv_ops.irq.restore_fl = in xen_setup_vcpu_info_placement() 1007 pv_ops.irq.irq_disable = in xen_setup_vcpu_info_placement() 1009 pv_ops.irq.irq_enable = in xen_setup_vcpu_info_placement() 1011 pv_ops.mmu.read_cr2 = in xen_setup_vcpu_info_placement() 1177 pv_ops.cpu.write_gdt_entry = xen_write_gdt_entry_boot; in xen_setup_gdt() 1178 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() 1209 pv_ops.init.patch = paravirt_patch_default; in xen_start_kernel() [all …]
|
| D | mmu_pv.c | 2053 pv_ops.mmu.set_pte = xen_set_pte; in xen_post_allocator_init() 2054 pv_ops.mmu.set_pmd = xen_set_pmd; in xen_post_allocator_init() 2055 pv_ops.mmu.set_pud = xen_set_pud; in xen_post_allocator_init() 2056 pv_ops.mmu.set_p4d = xen_set_p4d; in xen_post_allocator_init() 2060 pv_ops.mmu.alloc_pte = xen_alloc_pte; in xen_post_allocator_init() 2061 pv_ops.mmu.alloc_pmd = xen_alloc_pmd; in xen_post_allocator_init() 2062 pv_ops.mmu.release_pte = xen_release_pte; in xen_post_allocator_init() 2063 pv_ops.mmu.release_pmd = xen_release_pmd; in xen_post_allocator_init() 2064 pv_ops.mmu.alloc_pud = xen_alloc_pud; in xen_post_allocator_init() 2065 pv_ops.mmu.release_pud = xen_release_pud; in xen_post_allocator_init() [all …]
|
| D | mmu_hvm.c | 76 pv_ops.mmu.exit_mmap = xen_hvm_exit_mmap; in xen_hvm_init_mmu_ops()
|
| D | irq.c | 131 pv_ops.irq = xen_irq_ops; in xen_init_irq_ops()
|
| D | time.c | 531 pv_ops.time = xen_time_ops; in xen_init_time_ops() 573 pv_ops.time = xen_time_ops; in xen_hvm_init_time_ops()
|
| /Linux-v5.10/Documentation/virt/ |
| D | paravirt_ops.rst | 9 different hypervisors, this restriction was removed with pv_ops. 10 Linux pv_ops is a virtualization API which enables support for different 15 pv_ops provides a set of function pointers which represent operations 21 pv_ops operations are classified into three categories:
|
| /Linux-v5.10/arch/arm/kernel/ |
| D | paravirt.c | 17 struct paravirt_patch_template pv_ops; variable 18 EXPORT_SYMBOL_GPL(pv_ops);
|
| /Linux-v5.10/arch/x86/include/asm/ |
| D | paravirt.h | 42 pv_ops.cpu.io_delay(); in slow_down_io() 44 pv_ops.cpu.io_delay(); in slow_down_io() 45 pv_ops.cpu.io_delay(); in slow_down_io() 46 pv_ops.cpu.io_delay(); in slow_down_io() 545 pv_ops.mmu.set_fixmap(idx, phys, flags); in __set_fixmap() 760 jmp PARA_INDIRECT(pv_ops+PV_CPU_iret);) 766 call PARA_INDIRECT(pv_ops+PV_IRQ_irq_disable); \ 773 call PARA_INDIRECT(pv_ops+PV_IRQ_irq_enable); \ 796 call PARA_INDIRECT(pv_ops+PV_CPU_swapgs); \ 802 jmp PARA_INDIRECT(pv_ops+PV_CPU_usergs_sysret64);) [all …]
|
| D | paravirt_types.h | 316 extern struct paravirt_patch_template pv_ops; 323 [paravirt_opptr] "i" (&(pv_ops.op)) 476 #define PVOP_TEST_NULL(op) BUG_ON(pv_ops.op == NULL) 478 #define PVOP_TEST_NULL(op) ((void)pv_ops.op)
|
| D | mshyperv.h | 66 pv_ops.time.sched_clock = sched_clock; in hv_setup_sched_clock()
|
| /Linux-v5.10/arch/arm64/kernel/ |
| D | paravirt.c | 29 struct paravirt_patch_template pv_ops; variable 30 EXPORT_SYMBOL_GPL(pv_ops); 153 pv_ops.time.steal_clock = pv_steal_clock; in pv_time_init()
|
| /Linux-v5.10/arch/arm/include/asm/ |
| D | paravirt.h | 18 extern struct paravirt_patch_template pv_ops; 22 return pv_ops.time.steal_clock(cpu); in paravirt_steal_clock()
|
| /Linux-v5.10/arch/x86/kernel/ |
| D | paravirt-spinlocks.c | 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()
|
| D | kvm.c | 295 pv_ops.cpu.io_delay = kvm_io_delay; in paravirt_ops_setup() 653 pv_ops.time.steal_clock = kvm_steal_clock; in kvm_guest_init() 657 pv_ops.mmu.flush_tlb_others = kvm_flush_tlb_others; in kvm_guest_init() 658 pv_ops.mmu.tlb_remove_table = tlb_remove_table; in kvm_guest_init() 927 pv_ops.lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath; in kvm_spinlock_init() 928 pv_ops.lock.queued_spin_unlock = in kvm_spinlock_init() 930 pv_ops.lock.wait = kvm_wait; in kvm_spinlock_init() 931 pv_ops.lock.kick = kvm_kick_cpu; in kvm_spinlock_init() 934 pv_ops.lock.vcpu_is_preempted = in kvm_spinlock_init()
|
| D | paravirt.c | 124 void *opfunc = *((void **)&pv_ops + type); in paravirt_patch_default() 273 struct paravirt_patch_template pv_ops = { variable 424 EXPORT_SYMBOL(pv_ops);
|
| D | kvmclock.c | 110 pv_ops.time.sched_clock = kvm_sched_clock_read; in kvm_sched_clock_init()
|
| D | tsc.c | 257 return pv_ops.time.sched_clock == native_sched_clock; in using_native_sched_clock()
|
| D | alternative.c | 608 used = pv_ops.init.patch(p->type, insn_buff, (unsigned long)p->instr, p->len); in apply_paravirt()
|
| /Linux-v5.10/arch/arm64/include/asm/ |
| D | paravirt.h | 18 extern struct paravirt_patch_template pv_ops; 22 return pv_ops.time.steal_clock(cpu); in paravirt_steal_clock()
|
| /Linux-v5.10/arch/x86/kernel/cpu/ |
| D | vmware.c | 331 pv_ops.cpu.io_delay = paravirt_nop; in vmware_paravirt_ops_setup() 339 pv_ops.time.sched_clock = vmware_sched_clock; in vmware_paravirt_ops_setup() 343 pv_ops.time.steal_clock = vmware_steal_clock; in vmware_paravirt_ops_setup()
|
| /Linux-v5.10/drivers/xen/ |
| D | time.c | 178 pv_ops.time.steal_clock = xen_steal_clock; in xen_time_setup_guest()
|