Re: [RFC PATCH] introduce sys_membarrier(): process-wide memory barrier (v3a)

Mathieu Desnoyers
2010-01-11T22:09:50Z

* Peter Zijlstra (peterz@infradead.org) wrote:
> On Mon, 2010-01-11 at 15:52 -0500, Mathieu Desnoyers wrote:
> >
> > So the clear bit can occur far, far away in the future, we don't care.
> > We'll just send extra IPIs when unneeded in this time-frame.
>
> I think we should try harder not to disturb CPUs, particularly in the
> face of RT tasks and DoS scenarios. Therefore I don't think we should
> just wildly send to mm_cpumask(), but verify (although speculatively)
> that the remote tasks' mm matches ours.
>

Well, my point of view is that if IPI TLB shootdown does not care about
disturbing CPUs running other processes in the time window of the lazy
removal, why should we ? We're adding an overhead very close to that of
an unrequired IPI shootdown which returns immediately without doing
anything.

The tradeoff here seems to be:
- more overhead within switch_mm() for more precise mm_cpumask.
vs
- lazy removal of the cpumask, which implies that some processors
running a different process can receive the IPI for nothing.

I really doubt we could create an IPI DoS based on such a small
time window.

Thanks,

Mathieu

--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68