Lines Matching full:apic
36 * instead of its ID (a.k.a. its default APIC ID), as KVM is guaranteed a fast
41 * guest physical APIC ID (limited by the size of the physical ID table), and
173 * achieved using AVIC doorbell. KVM disables the APIC access page in avic_activate_vmcb()
177 if (x2avic_enabled && apic_x2apic_mode(svm->vcpu.arch.apic)) { in avic_activate_vmcb()
184 * Flush the TLB, the guest may have inserted a non-APIC in avic_activate_vmcb()
312 return __sme_set(__pa(svm->vcpu.arch.apic->regs)); in avic_get_backing_page_address()
347 vcpu->arch.apic->apicv_active = false; in avic_init_backing_page()
354 if (WARN_ON_ONCE(!vcpu->arch.apic->regs)) in avic_init_backing_page()
375 /* Setting AVIC backing page address in the phy APIC ID table */ in avic_init_backing_page()
411 vcpu->arch.apic->irr_pending = true; in avic_kick_vcpu()
422 * KVM inhibits AVIC if any vCPU ID diverges from the vCPUs APIC ID, in avic_kick_vcpu_by_physical_id()
423 * i.e. APIC ID == vCPU ID. in avic_kick_vcpu_by_physical_id()
450 * For x2APIC, the logical APIC ID is a read-only value that is in avic_kick_vcpu_by_logical_id()
464 * destination APIC ID to vCPU without looping through all vCPUs.
566 struct kvm_lapic *apic = vcpu->arch.apic; in avic_incomplete_ipi_interception() local
588 kvm_apic_send_ipi(apic, icrl, icrh); in avic_incomplete_ipi_interception()
596 avic_kick_target_vcpus(vcpu->kvm, apic, icrl, icrh, index); in avic_incomplete_ipi_interception()
649 flat = kvm_lapic_get_reg(vcpu->arch.apic, APIC_DFR) == APIC_DFR_FLAT; in avic_ldr_write()
667 /* Note: x2AVIC does not use logical APIC ID table */ in avic_invalidate_logical_id_entry()
668 if (apic_x2apic_mode(vcpu->arch.apic)) in avic_invalidate_logical_id_entry()
679 u32 ldr = kvm_lapic_get_reg(vcpu->arch.apic, APIC_LDR); in avic_handle_ldr_update()
680 u32 id = kvm_xapic_id(vcpu->arch.apic); in avic_handle_ldr_update()
683 if (apic_x2apic_mode(vcpu->arch.apic)) in avic_handle_ldr_update()
698 u32 dfr = kvm_lapic_get_reg(vcpu->arch.apic, APIC_DFR); in avic_handle_dfr_update()
990 * Keep the APIC ID up-to-date in the entry to minimize the chances of in __avic_vcpu_load()
1008 * Physical APIC table and IRTE are consumed iff IsRun{ning} is '1'. in avic_vcpu_load()
1045 * Keep the previous APIC ID in the entry so that a rogue doorbell from in __avic_vcpu_put()
1109 * APIC ID, DFR and LDR registers, which would not be trapped in avic_refresh_virtual_apic_mode()
1111 * we need to check and update the AVIC logical APIC ID table in avic_refresh_virtual_apic_mode()