[patch 00/14] x86/apic: Implement single target IPI callback

From: Thomas Gleixner
Date: Wed Nov 04 2015 - 18:01:23 EST


Linus provided a implementation for this for x2apic_cluster and
mumbled at http://marc.info/?l=linux-kernel&m=144660325518209 :

> Side note, I have an *old* patch that I think simplifies the
> (reasonably common) case of sending IPI's to individual CPU's. That's
> done by the "reschedule ipi" in particular.
>
> That's something that is trivially done on the x2apic, but that the
> mask-based interfaces makes insanely complicated.
>
> I have *not* rebased this on top of modern kernels so it may not
> actually work as a patch any more, because I'm just sending this out
> as a "Hmm, what do you guys think" rather than a real submission.

I thought it's worthwhile so I had a look at the other apic
implementations and all but apic_default and apic_flat can be
converted halfways simple to provide a single target callback.

The following series does that and gets rid of the wrapper in the call
site at the end.

Compiles and didn't explode when booting it, so it must be perfect :)

Thanks,

tglx

---

arch/x86/include/asm/apic.h | 1 +
arch/x86/include/asm/ipi.h | 2 ++
arch/x86/kernel/apic/apic_flat_64.c | 19 +++++--------------
arch/x86/kernel/apic/apic_noop.c | 2 ++
arch/x86/kernel/apic/apic_numachip.c | 2 ++
arch/x86/kernel/apic/bigsmp_32.c | 10 +++-------
arch/x86/kernel/apic/ipi.c | 18 ++++++++++++++++++
arch/x86/kernel/apic/probe_32.c | 1 +
arch/x86/kernel/apic/x2apic_cluster.c | 12 ++++++++++++
arch/x86/kernel/apic/x2apic_phys.c | 12 ++++++++++++
arch/x86/kernel/apic/x2apic_uv_x.c | 1 +
arch/x86/kernel/smp.c | 4 ++--
12 files changed, 61 insertions(+), 23 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/