Messages in this thread | | | Date | Tue, 16 Apr 2024 22:53:22 +0200 | Subject | Re: [PATCH] KVM/x86: Do not clear SIPI while in SMM | From | Paolo Bonzini <> |
| |
On 4/16/24 22:47, Boris Ostrovsky wrote: > When a processor is running in SMM and receives INIT message the interrupt > is left pending until SMM is exited. On the other hand, SIPI, which > typically follows INIT, is discarded. This presents a problem since sender > has no way of knowing that its SIPI has been dropped, which results in > processor failing to come up. > > 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").
The sender should set a flag as early as possible in the SIPI code so that it's clear that it was not received; and an extra SIPI is not a problem, it will be ignored anyway and will not cause trouble if there's a race.
What is the reproducer for this?
Paolo
| |