[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 1/3] xen/x86: add nmi continuation framework
On 09.11.2020 10:50, Juergen Gross wrote: > Actions in NMI context are rather limited as e.g. locking is rather > fragile. > > Add a framework to continue processing in normal interrupt context > after leaving NMI processing. > > This is done by a high priority interrupt vector triggered via a > self IPI from NMI context, which will then call the continuation > function specified during NMI handling. > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> with one further adjustment request: > @@ -1799,6 +1800,24 @@ void unset_nmi_callback(void) > nmi_callback = dummy_nmi_callback; > } > > +bool nmi_check_continuation(void) > +{ > + bool ret = false; > + > + return ret; > +} > + > +void trigger_nmi_continuation(void) > +{ > + /* > + * Issue a self-IPI. Handling is done in spurious_interrupt(). > + * NMI could have happened in IPI sequence, so wait for ICR being idle > + * again before leaving NMI handler. > + */ > + send_IPI_self(SPURIOUS_APIC_VECTOR); > + apic_wait_icr_idle(); > +} This additionally relies on send_IPI_self_legacy() calling send_IPI_shortcut(), rather than e.g. resolving the local CPU number to a destination ID. I think this wants saying maybe here, but more importantly in that function. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |