Home
last modified time | relevance | path

Searched refs:pi_desc (Results 1 – 6 of 6) sorted by relevance

/linux/arch/x86/kvm/vmx/
H A Dposted_intr.c38 static struct pi_desc *vcpu_to_pi_desc(struct kvm_vcpu *vcpu) in vcpu_to_pi_desc()
40 return &(to_vt(vcpu)->pi_desc); in vcpu_to_pi_desc()
43 static int pi_try_set_control(struct pi_desc *pi_desc, u64 *pold, u64 new) in pi_try_set_control() argument
51 if (!try_cmpxchg64(&pi_desc->control, pold, new)) in pi_try_set_control()
59 struct pi_desc *pi_desc = vcpu_to_pi_desc(vcpu); in vmx_vcpu_pi_load() local
61 struct pi_desc old, new; in vmx_vcpu_pi_load()
79 if (pi_desc->nv != POSTED_INTR_WAKEUP_VECTOR && vcpu->cpu == cpu) { in vmx_vcpu_pi_load()
80 if (pi_test_and_clear_sn(pi_desc)) in vmx_vcpu_pi_load()
92 if (pi_desc->nv == POSTED_INTR_WAKEUP_VECTOR) { in vmx_vcpu_pi_load()
113 old.control = READ_ONCE(pi_desc->control); in vmx_vcpu_pi_load()
[all …]
H A Dposted_intr.h22 static inline int pi_find_highest_vector(struct pi_desc *pi_desc) in pi_find_highest_vector() argument
26 vec = find_last_bit(pi_desc->pir, 256); in pi_find_highest_vector()
H A Dvmx.h153 struct pi_desc *pi_desc; member
H A Dtdx.c709 tdx->vt.pi_desc.nv = POSTED_INTR_VECTOR; in tdx_vcpu_create()
710 __pi_set_sn(&tdx->vt.pi_desc); in tdx_vcpu_create()
1083 if (pi_test_on(&vt->pi_desc)) { in tdx_vcpu_run()
1087 APIC_VECTOR_MASK, &vt->pi_desc)) in tdx_vcpu_run()
1942 __vmx_deliver_posted_interrupt(vcpu, &tdx->vt.pi_desc, vector); in tdx_deliver_interrupt()
3186 td_vmcs_write64(tdx, POSTED_INTR_DESC_ADDR, __pa(&tdx->vt.pi_desc)); in tdx_vcpu_init()
H A Dnested.c330 vmx->nested.pi_desc = NULL; in nested_put_vmcs12_pages()
3508 vmx->nested.pi_desc = in nested_get_vmcs12_pages()
3509 (struct pi_desc *)(((void *)map->hva) + in nested_get_vmcs12_pages()
3520 vmx->nested.pi_desc = NULL; in nested_get_vmcs12_pages()
4042 if (!vmx->nested.pi_desc) in vmx_complete_nested_posted_interrupt()
4047 if (!pi_test_and_clear_on(vmx->nested.pi_desc)) in vmx_complete_nested_posted_interrupt()
4050 max_irr = pi_find_highest_vector(vmx->nested.pi_desc); in vmx_complete_nested_posted_interrupt()
4056 __kvm_apic_update_irr(vmx->nested.pi_desc->pir, in vmx_complete_nested_posted_interrupt()
4215 if (vmx->nested.pi_pending && vmx->nested.pi_desc && in vmx_has_nested_events()
4216 pi_test_on(vmx->nested.pi_desc)) { in vmx_has_nested_events()
[all …]
H A Dvmx.c4429 __vmx_deliver_posted_interrupt(vcpu, &vt->pi_desc, vector); in vmx_deliver_posted_interrupt()
4923 vmcs_write64(POSTED_INTR_DESC_ADDR, __pa((&vmx->vt.pi_desc))); in init_vmcs()
5038 vmx->vt.pi_desc.nv = POSTED_INTR_VECTOR; in __vmx_vcpu_reset()
5039 __pi_set_sn(&vmx->vt.pi_desc); in __vmx_vcpu_reset()
7076 if (pi_test_on(&vt->pi_desc)) { in vmx_sync_pir_to_irr()
7077 pi_clear_on(&vt->pi_desc); in vmx_sync_pir_to_irr()
7083 max_irr_is_from_pir = kvm_apic_update_irr(vcpu, vt->pi_desc.pir, in vmx_sync_pir_to_irr()
7750 __pa(&vmx->vt.pi_desc) | PID_TABLE_ENTRY_VALID); in vmx_vcpu_create()