LKML Archive on lore.kernel.org
 help / color / Atom feed
* [patch 00/14] x86/apic: Implement single target IPI callback
@ 2015-11-04 22:56 Thomas Gleixner
  2015-11-04 22:57 ` [patch 01/14] x86/apic: Add a single-target IPI function to the apic Thomas Gleixner
                   ` (14 more replies)
  0 siblings, 15 replies; 34+ messages in thread
From: Thomas Gleixner @ 2015-11-04 22:56 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Ingo Molnar, Peter Anvin, Borislav Petkov,
	Peter Zijlstra, Mike Travis, Daniel J Blueman

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(-)


^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, back to index

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-04 22:56 [patch 00/14] x86/apic: Implement single target IPI callback Thomas Gleixner
2015-11-04 22:57 ` [patch 01/14] x86/apic: Add a single-target IPI function to the apic Thomas Gleixner
2015-11-05 14:42   ` [tip:x86/apic] " tip-bot for Linus Torvalds
2015-11-04 22:57 ` [patch 02/14] x86/apic: Implement single target IPI function for x2apic_cluster Thomas Gleixner
2015-11-05  6:38   ` Ingo Molnar
2015-11-05  6:46     ` Linus Torvalds
2015-11-05  8:04       ` Thomas Gleixner
2015-11-05 14:43   ` [tip:x86/apic] " tip-bot for Linus Torvalds
2015-11-04 22:57 ` [patch 03/14] x86/apic: Implement default single target IPI function Thomas Gleixner
2015-11-05 14:43   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 04/14] x86/apic: Remove pointless indirections from apic_physflat Thomas Gleixner
2015-11-05 14:43   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 05/14] x86/apic: Wire up single IPI for apic_physflat Thomas Gleixner
2015-11-05 14:44   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 06/14] x86/apic: Remove pointless indirections from bigsmp_apic Thomas Gleixner
2015-11-05 14:44   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 07/14] x86/apic: Wire up single IPI for bigsmp_apic Thomas Gleixner
2015-11-05 14:44   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 08/14] x86/apic: Implement single IPI for x2apic_phys Thomas Gleixner
2015-11-05 14:45   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 09/14] x86/apic: Wire up single IPI for x2apic_uv Thomas Gleixner
2015-11-05 14:45   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 10/14] x86/apic: Implement single IPI for apic_noop Thomas Gleixner
2015-11-05 14:46   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 11/14] x86/apic: Wire up single IPI for apic_numachip Thomas Gleixner
2015-11-05 14:45   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 12/14] x86/apic: Provide default send single IPI wrapper Thomas Gleixner
2015-11-05 14:46   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 13/14] x86/apic: Use " Thomas Gleixner
2015-11-05 14:46   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:57 ` [patch 14/14] x86/smp: Remove " Thomas Gleixner
2015-11-05 14:47   ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-11-04 22:59 ` [patch 00/14] x86/apic: Implement single target IPI callback Linus Torvalds
2015-11-05  8:17   ` Thomas Gleixner

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
	git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git
	git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git