Messages in this thread | | | Date | Tue, 29 Jul 2014 11:02:34 +0200 (CEST) | From | Jiri Kosina <> | Subject | Re: [PATCH v3] ring-buffer: Race when writing and swapping cpu buffer in parallel |
| |
On Mon, 21 Jul 2014, Steven Rostedt wrote:
> > I thought that IPI used NMI and thus could not be blocked if the > > called function was reasonable. Note that ring_buffer_swap_cpu() does not take > > any lock and can't block anywhere. I am probably too optimistic here. > > Heh, that would be a crazy system. No, IPI is a normal maskable > interrupt. It does not use NMIs. In fact, IPI is how irq_work is > implemented to do stuff from an NMI outside of NMI context.
Just for the sake of completness -- on x86, it is possible to send NMI IPI by simply doing
apic->send_IPI_mask(mask, NMI_VECTOR);
but obviously smp_call_funcion_*() are not using this.
-- Jiri Kosina SUSE Labs
| |