From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>,
Per Fransson <per.fransson.ml@gmail.com>
Cc: Mika Westerberg <mika.westerberg@iki.fi>,
kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org
Subject: RE: [PATCH] Add call to non-crashing cores through IPI
Date: Mon, 22 Nov 2010 18:37:09 +0530 [thread overview]
Message-ID: <9d90879f08b3141aa5ce4a0887018de9@mail.gmail.com> (raw)
In-Reply-To: <20101122112759.GA31227@n2100.arm.linux.org.uk>
> -----Original Message-----
> From: Russell King - ARM Linux [mailto:linux@arm.linux.org.uk]
> Sent: Monday, November 22, 2010 4:58 PM
> To: Per Fransson; Shilimkar, Santosh
> Cc: Mika Westerberg; kexec@lists.infradead.org; linux-arm-
> kernel@lists.infradead.org
> Subject: Re: [PATCH] Add call to non-crashing cores through IPI
>
> On Mon, Nov 22, 2010 at 10:47:40AM +0000, Russell King - ARM Linux
wrote:
> > However, we do need smp_send_stop() to wait for a limited time for the
> > other CPUs to respond to the request.
>
> ARM: smp: make smp_send_stop() wait for secondary CPUs to stop
>
> Wait up to one second for secondary CPUs to respond to a request to
> stop. This avoids the sender CPU continuing and possibly destroying
> state before the recipients have had a chance to respond to the stop.
> However, if the recipients have crashed, we won't hang the sender
> CPU indefinitely.
>
Just tried this patch thinking it might fix the reboot issue
reported earlier. But it doesn't help.
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> ---
> arch/arm/kernel/smp.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
> index 5d0dc16..32a2158 100644
> --- a/arch/arm/kernel/smp.c
> +++ b/arch/arm/kernel/smp.c
> @@ -589,10 +589,16 @@ void smp_send_reschedule(int cpu)
>
> void smp_send_stop(void)
> {
> + unsigned long timeout;
> cpumask_t mask = cpu_online_map;
> cpu_clear(smp_processor_id(), mask);
> if (!cpus_empty(mask))
> send_ipi_message(&mask, IPI_CPU_STOP);
> +
> + /* Wait up to one second for other CPUs to stop */
> + timeout = USEC_PER_SEC;
> + while (num_online_cpus() > 1 && timeout--)
> + udelay(1);
> }
>
> /*
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: santosh.shilimkar@ti.com (Santosh Shilimkar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] Add call to non-crashing cores through IPI
Date: Mon, 22 Nov 2010 18:37:09 +0530 [thread overview]
Message-ID: <9d90879f08b3141aa5ce4a0887018de9@mail.gmail.com> (raw)
In-Reply-To: <20101122112759.GA31227@n2100.arm.linux.org.uk>
> -----Original Message-----
> From: Russell King - ARM Linux [mailto:linux at arm.linux.org.uk]
> Sent: Monday, November 22, 2010 4:58 PM
> To: Per Fransson; Shilimkar, Santosh
> Cc: Mika Westerberg; kexec at lists.infradead.org; linux-arm-
> kernel at lists.infradead.org
> Subject: Re: [PATCH] Add call to non-crashing cores through IPI
>
> On Mon, Nov 22, 2010 at 10:47:40AM +0000, Russell King - ARM Linux
wrote:
> > However, we do need smp_send_stop() to wait for a limited time for the
> > other CPUs to respond to the request.
>
> ARM: smp: make smp_send_stop() wait for secondary CPUs to stop
>
> Wait up to one second for secondary CPUs to respond to a request to
> stop. This avoids the sender CPU continuing and possibly destroying
> state before the recipients have had a chance to respond to the stop.
> However, if the recipients have crashed, we won't hang the sender
> CPU indefinitely.
>
Just tried this patch thinking it might fix the reboot issue
reported earlier. But it doesn't help.
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> ---
> arch/arm/kernel/smp.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
> index 5d0dc16..32a2158 100644
> --- a/arch/arm/kernel/smp.c
> +++ b/arch/arm/kernel/smp.c
> @@ -589,10 +589,16 @@ void smp_send_reschedule(int cpu)
>
> void smp_send_stop(void)
> {
> + unsigned long timeout;
> cpumask_t mask = cpu_online_map;
> cpu_clear(smp_processor_id(), mask);
> if (!cpus_empty(mask))
> send_ipi_message(&mask, IPI_CPU_STOP);
> +
> + /* Wait up to one second for other CPUs to stop */
> + timeout = USEC_PER_SEC;
> + while (num_online_cpus() > 1 && timeout--)
> + udelay(1);
> }
>
> /*
next prev parent reply other threads:[~2010-11-22 13:07 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-19 10:08 [PATCH] Add call to non-crashing cores through IPI Per Fransson
2010-11-19 10:08 ` Per Fransson
2010-11-22 7:24 ` Mika Westerberg
2010-11-22 7:24 ` Mika Westerberg
2010-11-22 9:47 ` Maxim Uvarov
2010-11-22 9:47 ` Maxim Uvarov
2010-11-22 9:53 ` Per Fransson
2010-11-22 9:53 ` Per Fransson
2010-11-22 10:47 ` Russell King - ARM Linux
2010-11-22 10:47 ` Russell King - ARM Linux
2010-11-22 11:27 ` Russell King - ARM Linux
2010-11-22 11:27 ` Russell King - ARM Linux
2010-11-22 13:07 ` Santosh Shilimkar [this message]
2010-11-22 13:07 ` Santosh Shilimkar
2010-11-22 14:21 ` Russell King - ARM Linux
2010-11-22 14:21 ` Russell King - ARM Linux
2010-11-22 17:25 ` Santosh Shilimkar
2010-11-22 17:25 ` Santosh Shilimkar
2010-11-22 14:31 ` Per Fransson
2010-11-22 14:31 ` Per Fransson
2010-11-22 14:40 ` Russell King - ARM Linux
2010-11-22 14:40 ` Russell King - ARM Linux
2010-11-22 17:03 ` Per Fransson
2010-11-22 17:03 ` Per Fransson
2010-11-22 17:12 ` Catalin Marinas
2010-11-22 17:12 ` Catalin Marinas
2010-11-22 20:09 ` Maxim Uvarov
2010-11-22 20:09 ` Maxim Uvarov
2010-11-22 22:14 ` Per Fransson
2010-11-22 22:14 ` Per Fransson
2010-11-22 22:30 ` Per Fransson
2010-11-22 22:30 ` Per Fransson
2010-11-23 9:14 ` Catalin Marinas
2010-11-23 9:14 ` Catalin Marinas
2010-11-23 10:57 ` Per Fransson
2010-11-23 10:57 ` Per Fransson
2010-11-23 12:37 ` Catalin Marinas
2010-11-23 12:37 ` Catalin Marinas
2010-11-23 12:41 ` Mika Westerberg
2010-11-23 12:41 ` Mika Westerberg
2010-11-23 12:48 ` Catalin Marinas
2010-11-23 12:48 ` Catalin Marinas
2010-11-23 13:01 ` Maxim Uvarov
2010-11-23 13:01 ` Maxim Uvarov
2010-11-23 16:31 ` Per Fransson
2010-11-23 16:31 ` Per Fransson
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=9d90879f08b3141aa5ce4a0887018de9@mail.gmail.com \
--to=santosh.shilimkar@ti.com \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux@arm.linux.org.uk \
--cc=mika.westerberg@iki.fi \
--cc=per.fransson.ml@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.