From: tip-bot for Len Brown <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: hpa@zytor.com, mingo@kernel.org, linux-kernel@vger.kernel.org,
jschoenh@amazon.de, arjan@linux.intel.com, tglx@linutronix.de,
len.brown@intel.com, torvalds@linux-foundation.org,
alan@linux.intel.com, bp@alien8.de
Subject: [tip:x86/apic] x86/smp/boot: Remove 10ms delay from cpu_up() on modern processors
Date: Tue, 12 May 2015 00:39:53 -0700 [thread overview]
Message-ID: <tip-1a744cb356c57303fc97eb15a298032170f841fa@git.kernel.org> (raw)
In-Reply-To: <021ce30c88f216ad39686646421194dc25671e55.1431379433.git.len.brown@intel.com>
Commit-ID: 1a744cb356c57303fc97eb15a298032170f841fa
Gitweb: http://git.kernel.org/tip/1a744cb356c57303fc97eb15a298032170f841fa
Author: Len Brown <len.brown@intel.com>
AuthorDate: Mon, 11 May 2015 17:27:10 -0400
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 12 May 2015 08:54:33 +0200
x86/smp/boot: Remove 10ms delay from cpu_up() on modern processors
Modern processor familes do not require the 10ms delay
in cpu_up() to de-assert INIT. This speeds up boot
and resume by 10ms per (application) processor.
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jan H. Schönherr <jschoenh@amazon.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/021ce30c88f216ad39686646421194dc25671e55.1431379433.git.len.brown@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/kernel/smpboot.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 0629a8e..85bd6aa 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -521,6 +521,7 @@ void __inquire_remote_apic(int apicid)
* many cores and don't require that delay.
*
* Cmdline "init_cpu_udelay=" is available to over-ride this delay.
+ * Modern processor families are quirked to remove the delay entirely.
*/
#define UDELAY_10MS_DEFAULT 10000
@@ -534,6 +535,18 @@ static int __init cpu_init_udelay(char *str)
}
early_param("cpu_init_udelay", cpu_init_udelay);
+static void __init smp_quirk_init_udelay(void)
+{
+ /* if cmdline changed it from default, leave it alone */
+ if (init_udelay != UDELAY_10MS_DEFAULT)
+ return;
+
+ /* if modern processor, use no delay */
+ if (((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && (boot_cpu_data.x86 == 6)) ||
+ ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && (boot_cpu_data.x86 >= 0xF)))
+ init_udelay = 0;
+}
+
/*
* Poke the other CPU in the eye via NMI to wake it up. Remember that the normal
* INIT, INIT, STARTUP sequence will reset the chip hard for us, and this
@@ -1210,6 +1223,8 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
uv_system_init();
set_mtrr_aps_delayed_init();
+
+ smp_quirk_init_udelay();
}
void arch_enable_nonboot_cpus_begin(void)
next prev parent reply other threads:[~2015-05-12 7:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-11 21:27 [PATCH 0/2 v5] speed up cpu_up() Len Brown
2015-05-11 21:27 ` [PATCH 1/2] x86: Add cmdline "cpu_init_udelay=N" to specify cpu_up() delay Len Brown
2015-05-11 21:27 ` [PATCH 2/2] x86: remove 10ms delay from cpu_up() on modern processors Len Brown
2015-05-12 7:39 ` tip-bot for Len Brown [this message]
2015-05-12 7:39 ` [tip:x86/apic] x86/smp/boot: Add cmdline "cpu_init_udelay=N" to specify cpu_up() delay tip-bot for Len Brown
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=tip-1a744cb356c57303fc97eb15a298032170f841fa@git.kernel.org \
--to=tipbot@zytor.com \
--cc=alan@linux.intel.com \
--cc=arjan@linux.intel.com \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=jschoenh@amazon.de \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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.