> Function mips64_send_ipi() will block if the target core has a pending > IPI request. This will degrade performance in a system that has more > than a few cores and where there is a heavy IPI load. > > The blocking can be avoided by coalescing requests. The mips64 code > should handle this just fine. The only place where exact, > non-coalescing IPI delivery is needed is the rendezvous mechanism, but > there invocations are serialized by the rendezvous mutex anyway. > > The order of the sending and receiving steps is important. I hope that > I got it right.
Your diff looks correct at first glance. I'm giving it some beating on an MP sgi system at the moment. Miod