LKML Archive on lore.kernel.org
 help / color / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Ingo Molnar <mingo@kernel.org>, Peter Anvin <hpa@zytor.com>,
	Borislav Petkov <borislav.petkov@amd.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Mike Travis <travis@sgi.com>,
	Daniel J Blueman <daniel@numascale.com>
Subject: [patch 00/14] x86/apic: Implement single target IPI callback
Date: Wed, 04 Nov 2015 22:56:59 -0000
Message-ID: <20151104215716.810356093@linutronix.de> (raw)

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


             reply index

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-04 22:56 Thomas Gleixner [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151104215716.810356093@linutronix.de \
    --to=tglx@linutronix.de \
    --cc=borislav.petkov@amd.com \
    --cc=daniel@numascale.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=torvalds@linux-foundation.org \
    --cc=travis@sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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