All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Cc: Yinghai Lu <yinghai@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] x86: fix wakeup_cpu with numaq/es7000 v2
Date: Thu, 20 Nov 2008 10:46:21 +0100	[thread overview]
Message-ID: <20081120094621.GD6885@elte.hu> (raw)
In-Reply-To: <4924E0C7.8000003@ct.jp.nec.com>


* Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com> wrote:

> Yinghai Lu wrote:
> > Ingo Molnar wrote:
> >> hm, one of my testboxes is rather unhappy about your patch:
> > 
> > 
> > please check
> > 
> > if you agree, will update update_genapic to autodetect other functions or etc.
> > 
> > YH
> > 
> > ---
> > 
> > [PATCH] x86: fix wakeup_cpu with numaq/es7000 v2 - fix
> > 
> > Impact: fix wakeup_secondary_cpu with hotplug
> > 
> > We can not put that in x86_quirks, because that is __initdata.
> > So try to move that to genapic, and add update_genapic in x86_quirks.
> > 
> > later we even could use that stub to
> > 1. autodetect CONFIG_ES7000_CLUSTERED_APIC
> > 2. more correct inquire_remote_apic with apic_verbosity setting.
> 
> Hi,
> 
> I encountered boot failure on x86_32 box.
> I think setting wakeup_cpu is missing.
> 
> --------
> From: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> Subject: [PATCH] x86: genapic: fix missing wakeup_cpu setup
> 
> Impact: fix boot failure
> 
> There is no way to setup wakeup_cpu when boot parameter apic= is not passed.
> 
> Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> ---
>  arch/x86/mach-generic/probe.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)

thanks - i've applied the wider fix from Yinghai - see it below.

i'm wondering why my tests didnt trigger this boot crash. What makes 
your system or .config special to trigger it?

	Ingo

-------------->
>From 87f7606591aea6a8a38ea4c8911b5eeeee2740b8 Mon Sep 17 00:00:00 2001
From: Yinghai Lu <yinghai@kernel.org>
Date: Wed, 19 Nov 2008 20:50:53 -0800
Subject: [PATCH] x86: fix wakeup_cpu with numaq/es7000 v2 - call ->update_genapic()

Impact: fix boot crash on 32-bit

Hiroshi Shimamoto reported a boot failure on 32-bit x86.

The setting of x86_quirks.wakeup_cpu is missing (when
not passing in an explicit apic= boot parameter).

Reported-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 arch/x86/mach-generic/probe.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/arch/x86/mach-generic/probe.c b/arch/x86/mach-generic/probe.c
index 90b134f..c346d9d 100644
--- a/arch/x86/mach-generic/probe.c
+++ b/arch/x86/mach-generic/probe.c
@@ -76,12 +76,15 @@ void __init generic_bigsmp_probe(void)
 	 * - we find more than 8 CPUs in acpi LAPIC listing with xAPIC support
 	 */
 
-	if (!cmdline_apic && genapic == &apic_default)
+	if (!cmdline_apic && genapic == &apic_default) {
 		if (apic_bigsmp.probe()) {
 			genapic = &apic_bigsmp;
+			if (x86_quirks->update_genapic)
+				x86_quirks->update_genapic();
 			printk(KERN_INFO "Overriding APIC driver with %s\n",
 			       genapic->name);
 		}
+	}
 #endif
 }
 
@@ -98,6 +101,9 @@ void __init generic_apic_probe(void)
 		/* Not visible without early console */
 		if (!apic_probe[i])
 			panic("Didn't find an APIC driver");
+
+		if (x86_quirks->update_genapic)
+			x86_quirks->update_genapic();
 	}
 	printk(KERN_INFO "Using APIC driver %s\n", genapic->name);
 }
@@ -112,6 +118,8 @@ int __init mps_oem_check(struct mp_config_table *mpc, char *oem,
 		if (apic_probe[i]->mps_oem_check(mpc, oem, productid)) {
 			if (!cmdline_apic) {
 				genapic = apic_probe[i];
+				if (x86_quirks->update_genapic)
+					x86_quirks->update_genapic();
 				printk(KERN_INFO "Switched to APIC driver `%s'.\n",
 				       genapic->name);
 			}
@@ -128,6 +136,8 @@ int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
 		if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) {
 			if (!cmdline_apic) {
 				genapic = apic_probe[i];
+				if (x86_quirks->update_genapic)
+					x86_quirks->update_genapic();
 				printk(KERN_INFO "Switched to APIC driver `%s'.\n",
 				       genapic->name);
 			}

  reply	other threads:[~2008-11-20  9:46 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-16  8:47 [PATCH] x86: fix wakeup_cpu with numaq/es7000 Yinghai Lu
2008-11-16 11:12 ` [PATCH] x86: fix wakeup_cpu with numaq/es7000 v2 Yinghai Lu
2008-11-17 16:52   ` Ingo Molnar
2008-11-17 17:11     ` Cyrill Gorcunov
2008-11-17 17:35       ` Ingo Molnar
2008-11-17 17:52         ` Cyrill Gorcunov
2008-11-17 17:37     ` Ingo Molnar
2008-11-17 17:38       ` Ingo Molnar
2008-11-17 18:18         ` Yinghai Lu
2008-11-17 17:38       ` Ingo Molnar
2008-11-17 21:06       ` Yinghai Lu
2008-11-17 23:19       ` Yinghai Lu
2008-11-17 23:28         ` Ingo Molnar
2008-11-18  2:49           ` Yinghai Lu
2008-11-18  2:51             ` Yinghai Lu
2008-11-18  7:43           ` Ingo Molnar
2008-11-18 16:13             ` [PATCH] x86: fix wakeup_cpu with numaq/es7000 v2 - fix v2 Yinghai Lu
2008-11-18 16:14               ` [PATCH] x86: use update_genapic to get rid of ES7000_CLUSTERED_APIC v2 Yinghai Lu
2008-11-18 21:14               ` [PATCH] x86: fix wakeup_cpu with numaq/es7000 v2 - fix v2 Ingo Molnar
2008-11-20  4:50                 ` Yinghai Lu
2008-11-20  4:00         ` [PATCH] x86: fix wakeup_cpu with numaq/es7000 v2 Hiroshi Shimamoto
2008-11-20  9:46           ` Ingo Molnar [this message]
2008-11-20 18:15             ` Hiroshi Shimamoto
2008-11-17 17:54     ` Yinghai Lu

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=20081120094621.GD6885@elte.hu \
    --to=mingo@elte.hu \
    --cc=akpm@linux-foundation.org \
    --cc=h-shimamoto@ct.jp.nec.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=yinghai@kernel.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.