Messages in this thread | | | Date | Wed, 04 Nov 2015 22:56:59 -0000 | From | Thomas Gleixner <> | Subject | [patch 00/14] x86/apic: Implement single target IPI callback |
| |
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(-)
| |