linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jiang Liu <liuj97@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>, Shaohua Li <shli@kernel.org>
Cc: liuj97@gmail.com, Jiang Liu <jiang.liu@huawei.com>,
	Ingo Molnar <mingo@elte.hu>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Steven Rostedt <rostedt@goodmis.org>,
	Jiri Kosina <trivial@kernel.org>,
	Wang YanQing <udknight@gmail.com>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org
Subject: [RFC PATCH v2 00/25] simplify generic cross CPU function call implementation
Date: Thu, 12 Sep 2013 00:07:04 +0800	[thread overview]
Message-ID: <1378915649-16395-1-git-send-email-liuj97@gmail.com> (raw)

From: Jiang Liu <jiang.liu@huawei.com>

Since commit 9a46ad6d6df3b54 "smp: make smp_call_function_many() use
logic similar to smp_call_function_single()", single and multiple
(mask version) cross CPU function calls are handled in the same way,
and generic_smp_call_function_interrupt() becomes an aliases of
generic_smp_call_function_single_interrupt(), so only one interrupt
is needed for arch code to support generic SMP function call interfaces.
This patch series simplifies arch code by killing the redundant
interrupt for cross CPU function calls.

We choose to keep generic_smp_call_function_interrupt() instead of
generic_smp_call_function_single_interrupt() because the former is
more generic.

Jiang Liu (25):
  Revert smp: Fix SMP function call empty cpu mask race
  smp, alpha: kill SMP single function call interrupt
  smp, ARC: kill SMP single function call interrupt
  smp, ARM: kill SMP single function call interrupt
  smp, ARM64: kill SMP single function call interrupt
  smp, blackfin: kill SMP single function call interrupt
  smp, hexagon: kill SMP single function call interrupt
  smp, IA64: kill SMP single function call interrupt
  smp, m32r: kill SMP single function call interrupt
  smp, metag: kill SMP single function call interrupt
  smp, mips: kill redundant call of
    generic_smp_call_function_single_interrupt()
  smp, mn10300: kill SMP single function call interrupt
  smp, mn10300: enable arch_send_call_function_ipi_mask()
  smp, parisc: kill SMP single function call interrupt
  smp, ppc: kill SMP single function call interrupt
  smp, s390: prepare for killing
    generic_smp_call_function_single_interrupt()
  smp, sh: kill SMP single function call interrupt
  smp, sparc64: kill SMP single function call interrupt
  smp, sparc: kill SMP single function call interrupt
  smp, tile: kill SMP single function call interrupt
  smp, tile: kill SMP single function call interrupt
  smp, x86: kill SMP single function call interrupt
  smp: cleanup unsued generic_smp_call_function_single_interrupt()
  smp: rename call_single_queue as call_function_queue
  SMP, trivial: remove unused code from smp_boot.h

 arch/alpha/kernel/smp.c                  |  9 +-------
 arch/arc/kernel/smp.c                    |  7 +-----
 arch/arm/include/asm/hardirq.h           |  2 +-
 arch/arm/kernel/smp.c                    | 10 +--------
 arch/arm64/include/asm/hardirq.h         |  2 +-
 arch/arm64/kernel/smp.c                  | 10 +--------
 arch/blackfin/mach-common/smp.c          |  7 +-----
 arch/hexagon/include/asm/smp.h           |  1 -
 arch/hexagon/kernel/smp.c                |  6 +-----
 arch/ia64/kernel/smp.c                   |  8 ++-----
 arch/m32r/include/asm/smp.h              |  1 -
 arch/m32r/kernel/smp.c                   |  9 +-------
 arch/m32r/kernel/traps.c                 |  3 +--
 arch/metag/include/asm/smp.h             |  2 --
 arch/metag/kernel/smp.c                  |  6 +-----
 arch/mips/kernel/smp.c                   |  1 -
 arch/mn10300/include/asm/smp.h           |  2 +-
 arch/mn10300/kernel/smp.c                | 19 ++++++++--------
 arch/parisc/kernel/smp.c                 |  8 +------
 arch/powerpc/include/asm/smp.h           |  3 +--
 arch/powerpc/kernel/smp.c                | 12 +----------
 arch/s390/kernel/smp.c                   | 10 ++++-----
 arch/sh/include/asm/smp.h                |  1 -
 arch/sh/kernel/smp.c                     |  5 +----
 arch/sparc/include/asm/pil.h             |  5 ++---
 arch/sparc/include/asm/smp_32.h          |  4 +---
 arch/sparc/kernel/entry.S                | 10 ++-------
 arch/sparc/kernel/leon_smp.c             | 31 ++++++--------------------
 arch/sparc/kernel/smp_32.c               | 14 ++----------
 arch/sparc/kernel/smp_64.c               | 11 +---------
 arch/sparc/kernel/sun4d_smp.c            | 31 ++++++--------------------
 arch/sparc/kernel/sun4m_smp.c            | 11 ++--------
 arch/sparc/kernel/ttable_64.S            | 12 ++++-------
 arch/sparc/mm/ultra.S                    |  5 -----
 arch/tile/include/asm/smp.h              |  7 +++---
 arch/tile/kernel/smp.c                   |  6 +-----
 arch/x86/include/asm/entry_arch.h        |  1 -
 arch/x86/include/asm/hw_irq.h            |  3 ---
 arch/x86/include/asm/irq_vectors.h       |  7 +++---
 arch/x86/include/asm/trace/irq_vectors.h |  6 ------
 arch/x86/include/asm/xen/events.h        |  1 -
 arch/x86/kernel/entry_64.S               |  2 --
 arch/x86/kernel/irqinit.c                |  4 ----
 arch/x86/kernel/smp.c                    | 24 +--------------------
 arch/x86/xen/smp.c                       | 37 +-------------------------------
 include/linux/smp.h                      |  4 +---
 include/linux/smpboot.h                  |  1 -
 kernel/smp.c                             | 36 +++++++++++--------------------
 48 files changed, 82 insertions(+), 335 deletions(-)

-- 
1.8.1.2

             reply	other threads:[~2013-09-11 16:08 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-11 16:07 Jiang Liu [this message]
2013-09-11 16:07 ` [PATCH v2 01/25] Revert smp: Fix SMP function call empty cpu mask race Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-14  4:41   ` Wang YanQing
2013-09-14  4:41     ` Wang YanQing
2013-09-14  4:43     ` Wang YanQing
2013-09-16  2:22       ` Chen Gang
2013-09-11 16:07 ` [RFC PATCH v2 02/25] smp, alpha: kill SMP single function call interrupt Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-10-22 10:07   ` Vineet Gupta
2013-10-22 10:18     ` Vineet Gupta
2013-10-22 10:18       ` Vineet Gupta
2013-09-11 16:07 ` [RFC PATCH v2 03/25] smp, ARC: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-25 11:31   ` Vineet Gupta
2013-09-11 16:07 ` [RFC PATCH v2 04/25] smp, ARM: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-12  9:14   ` Will Deacon
2013-09-11 16:07 ` [RFC PATCH v2 05/25] smp, ARM64: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-12  9:14   ` Will Deacon
2013-09-11 16:07 ` [RFC PATCH v2 06/25] smp, blackfin: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 07/25] smp, hexagon: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 08/25] smp, IA64: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 09/25] smp, m32r: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 10/25] smp, metag: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-12 11:14   ` James Hogan
2013-09-11 16:07 ` [RFC PATCH v2 11/25] smp, mips: kill redundant call of generic_smp_call_function_single_interrupt() Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 12/25] smp, mn10300: kill SMP single function call interrupt Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 13/25] smp, mn10300: enable arch_send_call_function_ipi_mask() Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 14/25] smp, parisc: kill SMP single function call interrupt Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 15/25] smp, ppc: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 20:03   ` Srivatsa S. Bhat
2013-09-11 20:03     ` Srivatsa S. Bhat
2013-09-12 14:04     ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 16/25] smp, s390: prepare for killing generic_smp_call_function_single_interrupt() Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 17/25] smp, sh: kill SMP single function call interrupt Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-12  8:35   ` Paul Mundt
2013-09-11 16:07 ` [RFC PATCH v2 18/25] smp, sparc64: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 19/25] smp, sparc: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 20/25] smp, tile: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:51   ` Chris Metcalf
2013-09-11 16:07 ` [RFC PATCH v2 21/25] " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 22/25] smp, x86: " Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 23/25] smp: cleanup unsued generic_smp_call_function_single_interrupt() Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 24/25] smp: rename call_single_queue as call_function_queue Jiang Liu
2013-09-11 16:07   ` Jiang Liu
2013-09-11 16:07 ` [RFC PATCH v2 25/25] SMP, trivial: remove unused code from smp_boot.h Jiang Liu
2013-09-11 16:07   ` Jiang Liu

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=1378915649-16395-1-git-send-email-liuj97@gmail.com \
    --to=liuj97@gmail.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=jiang.liu@huawei.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rostedt@goodmis.org \
    --cc=shli@kernel.org \
    --cc=trivial@kernel.org \
    --cc=udknight@gmail.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).