Re: [PATCH][2.5] fix preempt-issues with smp_call_function()

Andrew Morton
2003-02-26T18:36:36Z

Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
>
> On Wed, 2003-02-26 at 10:28, Andrew Morton wrote:
> > Dave Jones <davej@codemonkey.org.uk> wrote:
> > >
> > > btw, (unrelated) shouldn't smp_call_function be doing magick checks
> > > with cpu_online() ?
> >
> > Looks OK? It sprays the IPI out to all the other CPUs in cpu_online_map,
> > and waits for num_online_cpus()-1 CPUs to answer.
>
> You cannot do that by counting without a lot of care. IPI messages do not have
> guaranteed "once only" semantics. On an error a resend can and has been observed
> to cause a reissue of an IPI on PII/PIII setups

If that resend results in delivery of an actual extra interrupt, the
resent-to CPU can start playing with stuff which used to be on the sender's
stack and the box goes splat.

Didn't sct have a fix for that?