Damien Zammit, le jeu. 10 juil. 2025 10:14:13 +0000, a ecrit: > We need to wait first for pending to clear before sending > the IPI assert signal. Likewise, if we always do it this > way, we don't need to wait for pending to clear afterward > because next time we will wait again anyway. Deassert does > not seem necessary according to Intel SDM Vol 3, which > says an IPI is sent when ICR low is written. > > NB: This is not the same code as for STARTUP or INIT IPIs.
Applied, thanks! > --- > i386/i386/smp.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/i386/i386/smp.c b/i386/i386/smp.c > index 4513b7f2..dc3a8ba5 100644 > --- a/i386/i386/smp.c > +++ b/i386/i386/smp.c > @@ -54,17 +54,11 @@ static void smp_send_ipi(unsigned logical_id, unsigned > vector) > > cpu_intr_save(&flags); > > - apic_send_ipi(NO_SHORTHAND, FIXED, LOGICAL, ASSERT, EDGE, vector, > logical_id); > - > do { > cpu_pause(); > } while(lapic->icr_low.delivery_status == SEND_PENDING); > > - apic_send_ipi(NO_SHORTHAND, FIXED, LOGICAL, DE_ASSERT, EDGE, vector, > logical_id); > - > - do { > - cpu_pause(); > - } while(lapic->icr_low.delivery_status == SEND_PENDING); > + apic_send_ipi(NO_SHORTHAND, FIXED, LOGICAL, ASSERT, EDGE, vector, > logical_id); > > cpu_intr_restore(flags); > } > -- > 2.45.2