From: Toshi Kani <toshi.kani@hp.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: linux-kernel@vger.kernel.org, tglx@linutronix.de,
mingo@redhat.com, hpa@zytor.com, x86@kernel.org,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH v7] x86: initialize secondary CPU only if master CPU will wait for it
Date: Mon, 23 Jun 2014 15:41:05 -0600 [thread overview]
Message-ID: <1403559665.25108.6.camel@misato.fc.hp.com> (raw)
In-Reply-To: <1403266991-12233-1-git-send-email-imammedo@redhat.com>
On Fri, 2014-06-20 at 14:23 +0200, Igor Mammedov wrote:
> Hang is observed on virtual machines during CPU hotplug,
> especially in big guests with many CPUs. (It reproducible
> more often if host is over-committed).
>
> It happens because master CPU gives up waiting on
> secondary CPU and allows it to run wild. As result
> AP causes locking or crashing system. For example
> as described here: https://lkml.org/lkml/2014/3/6/257
>
> If master CPU have sent STARTUP IPI successfully,
> and AP signalled to master CPU that it's ready
> to start initialization, make master CPU wait
> indefinitely till AP is onlined.
> To ensure that AP won't ever run wild, make it
> wait at early startup till master CPU confirms its
> intention to wait for AP. If AP doesn't respond in 10
> seconds, the master CPU will timeout and cancel
> AP onlining.
>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
> v7:
> - fix stuck boot with non SMP config
> - fix stuck paravirtual Xen SMP boot with more than 1VCPU
> and CPU hotplug
> v6:
> - no changes
> v5:
> - add smp_mb() after clearing cpu_initialized_mask in do_boot_cpu()
> - add 10 sec timeout description into commit message.
> v4:
> - move commont code in cpu_init() for x32/x64 in shared
> helper function wait_formaster_cpu()
> - add WARN_ON(cpumask_test_and_set_cpu(cpu, cpu_initialized_mask))
> to wait_formaster_cpu()
> v3:
> - leave timeouts in do_boot_cpu(), so that master CPU
> won't hang if AP doesn't respond, use cpu_initialized_mask
> as a way for AP to signal to master CPU that it's ready
> to start initialzation.
> v2:
> - ammend comment in cpu_init()
> ---
> arch/x86/kernel/cpu/common.c | 29 ++++++++-----
> arch/x86/kernel/smpboot.c | 99 +++++++++++++-----------------------------
> arch/x86/xen/smp.c | 2 +
> 3 files changed, 51 insertions(+), 79 deletions(-)
For the changes under arch/x86/kernel (I'm not familiar with Xen):
Acked-by: Toshi Kani <toshi.kani@hp.com>
Thanks,
-Toshi
next prev parent reply other threads:[~2014-06-23 21:50 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-20 12:23 [PATCH v7] x86: initialize secondary CPU only if master CPU will wait for it Igor Mammedov
2014-06-23 21:41 ` Toshi Kani [this message]
2014-06-23 21:41 ` Toshi Kani
2014-06-24 17:25 ` Boris Ostrovsky
2014-06-24 17:25 ` [Xen-devel] " Boris Ostrovsky
2014-07-02 9:26 ` Igor Mammedov
2014-08-04 10:44 ` Igor Mammedov
2014-08-04 10:44 ` Igor Mammedov
2014-08-28 11:57 ` Igor Mammedov
2014-08-28 11:57 ` Igor Mammedov
2014-09-16 10:58 ` [tip:x86/boot] x86/smpboot: Initialize " tip-bot for Igor Mammedov
-- strict thread matches above, loose matches on Subject: below --
2014-06-20 12:23 [PATCH v7] x86: initialize " Igor Mammedov
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=1403559665.25108.6.camel@misato.fc.hp.com \
--to=toshi.kani@hp.com \
--cc=hpa@zytor.com \
--cc=imammedo@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/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.