From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
To: Jiang Liu <liuj97@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>, Shaohua Li <shli@kernel.org>,
linux-arch@vger.kernel.org, Jiri Kosina <trivial@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Wang YanQing <udknight@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
linuxppc-dev@lists.ozlabs.org, Jiang Liu <jiang.liu@huawei.com>,
Preeti U Murthy <preeti@linux.vnet.ibm.com>,
Deepthi Dharwar <deepthi@linux.vnet.ibm.com>,
Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Subject: Re: [RFC PATCH v2 15/25] smp, ppc: kill SMP single function call interrupt
Date: Thu, 12 Sep 2013 01:33:16 +0530 [thread overview]
Message-ID: <5230CC84.1010503@linux.vnet.ibm.com> (raw)
In-Reply-To: <1378915649-16395-16-git-send-email-liuj97@gmail.com>
On 09/11/2013 09:37 PM, Jiang Liu wrote:
> From: Jiang Liu <jiang.liu@huawei.com>
>
> Commit 9a46ad6d6df3b54 "smp: make smp_call_function_many() use logic
> similar to smp_call_function_single()" has unified the way to handle
> single and multiple cross-CPU function calls. Now only one interrupt
> is needed for architecture specific code to support generic SMP function
> call interfaces, so kill the redundant single function call interrupt.
>
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Cc: Jiang Liu <liuj97@gmail.com>
> ---
It turns out that freeing up the IPI slot in powerpc is very useful, since
we actually wanted a slot for some other use-case (and there are only 4 slots
available on powerpc).
Here are the patches which achieve that:
http://marc.info/?l=linuxppc-embedded&m=137886807502898&w=2
http://marc.info/?l=linuxppc-embedded&m=137886811502909&w=2
So, can you kindly consider dropping the powerpc patch from your series,
if that is OK with you? Thanks!
BTW, after doing the powerpc cleanup, even I had thought about killing one
of the smp-function variants in various architectures, but never got around
to do it. But now that you have posted the series which does that, I'll try
to review them.
Thank you!
Regards,
Srivatsa S. Bhat
> arch/powerpc/include/asm/smp.h | 3 +--
> arch/powerpc/kernel/smp.c | 12 +-----------
> 2 files changed, 2 insertions(+), 13 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
> index 48cfc85..53faa03 100644
> --- a/arch/powerpc/include/asm/smp.h
> +++ b/arch/powerpc/include/asm/smp.h
> @@ -119,8 +119,7 @@ extern int cpu_to_core_id(int cpu);
> * in /proc/interrupts will be wrong!!! --Troy */
> #define PPC_MSG_CALL_FUNCTION 0
> #define PPC_MSG_RESCHEDULE 1
> -#define PPC_MSG_CALL_FUNC_SINGLE 2
> -#define PPC_MSG_DEBUGGER_BREAK 3
> +#define PPC_MSG_DEBUGGER_BREAK 2
>
> /* for irq controllers that have dedicated ipis per message (4) */
> extern int smp_request_message_ipi(int virq, int message);
> diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
> index 38b0ba6..0c53b10 100644
> --- a/arch/powerpc/kernel/smp.c
> +++ b/arch/powerpc/kernel/smp.c
> @@ -123,12 +123,6 @@ static irqreturn_t reschedule_action(int irq, void *data)
> return IRQ_HANDLED;
> }
>
> -static irqreturn_t call_function_single_action(int irq, void *data)
> -{
> - generic_smp_call_function_single_interrupt();
> - return IRQ_HANDLED;
> -}
> -
> static irqreturn_t debug_ipi_action(int irq, void *data)
> {
> if (crash_ipi_function_ptr) {
> @@ -146,14 +140,12 @@ static irqreturn_t debug_ipi_action(int irq, void *data)
> static irq_handler_t smp_ipi_action[] = {
> [PPC_MSG_CALL_FUNCTION] = call_function_action,
> [PPC_MSG_RESCHEDULE] = reschedule_action,
> - [PPC_MSG_CALL_FUNC_SINGLE] = call_function_single_action,
> [PPC_MSG_DEBUGGER_BREAK] = debug_ipi_action,
> };
>
> const char *smp_ipi_name[] = {
> [PPC_MSG_CALL_FUNCTION] = "ipi call function",
> [PPC_MSG_RESCHEDULE] = "ipi reschedule",
> - [PPC_MSG_CALL_FUNC_SINGLE] = "ipi call function single",
> [PPC_MSG_DEBUGGER_BREAK] = "ipi debugger",
> };
>
> @@ -225,8 +217,6 @@ irqreturn_t smp_ipi_demux(void)
> generic_smp_call_function_interrupt();
> if (all & (1 << (24 - 8 * PPC_MSG_RESCHEDULE)))
> scheduler_ipi();
> - if (all & (1 << (24 - 8 * PPC_MSG_CALL_FUNC_SINGLE)))
> - generic_smp_call_function_single_interrupt();
> if (all & (1 << (24 - 8 * PPC_MSG_DEBUGGER_BREAK)))
> debug_ipi_action(0, NULL);
> #else
> @@ -257,7 +247,7 @@ EXPORT_SYMBOL_GPL(smp_send_reschedule);
>
> void arch_send_call_function_single_ipi(int cpu)
> {
> - do_message_pass(cpu, PPC_MSG_CALL_FUNC_SINGLE);
> + do_message_pass(cpu, PPC_MSG_CALL_FUNCTION);
> }
>
> void arch_send_call_function_ipi_mask(const struct cpumask *mask)
>
next prev parent reply other threads:[~2013-09-11 20:03 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-11 16:07 [RFC PATCH v2 00/25] simplify generic cross CPU function call implementation Jiang Liu
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 [this message]
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=5230CC84.1010503@linux.vnet.ibm.com \
--to=srivatsa.bhat@linux.vnet.ibm.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=deepthi@linux.vnet.ibm.com \
--cc=jiang.liu@huawei.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=liuj97@gmail.com \
--cc=mingo@elte.hu \
--cc=paulmck@linux.vnet.ibm.com \
--cc=paulus@samba.org \
--cc=preeti@linux.vnet.ibm.com \
--cc=rostedt@goodmis.org \
--cc=shli@kernel.org \
--cc=svaidy@linux.vnet.ibm.com \
--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).