Messages in this thread | | | Date | Tue, 16 Apr 2024 19:02:30 -0400 | Subject | Re: [PATCH] KVM/x86: Do not clear SIPI while in SMM | From | boris.ostrovsky@oracle ... |
| |
On 4/16/24 6:14 PM, Sean Christopherson wrote: > On Wed, Apr 17, 2024, Paolo Bonzini wrote: >> On Tue, Apr 16, 2024 at 10:57 PM <boris.ostrovsky@oracle.com> wrote: >>> On 4/16/24 4:53 PM, Paolo Bonzini wrote: >>>> On 4/16/24 22:47, Boris Ostrovsky wrote: >>>>> Keeping the SIPI pending avoids this scenario. >>>> >>>> This is incorrect - it's yet another ugly legacy facet of x86, but we >>>> have to live with it. SIPI is discarded because the code is supposed >>>> to retry it if needed ("INIT-SIPI-SIPI"). >>> >>> I couldn't find in the SDM/APM a definitive statement about whether SIPI >>> is supposed to be dropped. >> >> I think the manual is pretty consistent that SIPIs are never latched, >> they're only ever used in wait-for-SIPI state. > > Ya, the "Interrupt Command Register (ICR)" section for "110 (Start-Up)" explicitly > says it's software's responsibility to detect whether or not the SIPI was delivered, > and to resend SIPI(s) if needed. > > IPIs sent with this delivery mode are not automatically retried if the source > APIC is unable to deliver it. It is up to the software to determine if the > SIPI was not successfully delivered and to reissue the SIPI if necessary.
Right, I saw that. I was hoping to see something about SIPI being dropped. IOW my question was what happens to a SIPI that was delivered to a processor in SMM and not what should I do if it wasn't.
-boris
| |