From: Bernhard Heibler <spam@fs2k2.de>
To: linux-kernel <linux-kernel@vger.kernel.org>
Subject: Boot of smp system hangs in wakeup_secondary_cpu (Bug No 1659)
Date: Tue, 07 Sep 2004 20:43:41 +0200 [thread overview]
Message-ID: <413E015D.9010805@fs2k2.de> (raw)
I try to resolve the following issue. My SMP System hangs during boot.
Software Environment: 2.6.8.1 but also happens with older 2.6 kernels
Hardware Environment: 2 x Pentium 4 Xeon 2.8 GHZ Hyper Threading, Tyan
Tiger i7505
The hangup doesn't happen always it happens in maybe 33% of boot tries.
It seams that the problem doesn't happen if Hyper threading is disabled
in the Bios.
The boot process stops at this point:
....
Booting processor 2/6 eip 3000
Initializing CPU#2
masked ExtINT on CPU#2
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Calibrating delay loop... 4767.74 BogoMIPS
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Physical Processor ID: 6
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#2.
CPU#2: Intel P4/Xeon Extended MCE MSRs (12) available
CPU2: Intel(R) Xeon(TM) CPU 2.40GHz stepping 07
Booting processor 3/7 eip 3000
The hangup doesn't happen all the time at the same CPU. Sometimes it
happens at the second sometimes at the third one.
See my bugreport for a older kernel version for the full boot log file:
http://bugme.osdl.org/show_bug.cgi?id=1659
I have add more printouts to the kernel and found out that the boot
process gets stuck in the function wakeup_secondary_cpu in
arch/i386/kernel/smpboot.c In my kernel the WAKE_SECONDARY_VIA_INIT
version of wakeup_secondary is used:
....
apic_write_around(APIC_ICR, APIC_INT_LEVELTRIG | APIC_INT_ASSERT |
APIC_DM_INIT);
Dprintk("Waiting for send to finish...\n");
timeout = 0;
do {
Dprintk("+");
udelay(100);
send_status = apic_read(APIC_ICR) & APIC_ICR_BUSY;
} while (send_status && (timeout++ < 1000));
Dprintk("Before wait\n");
######### STUCK HERE ###############
mdelay(10);
Dprintk("Deasserting INIT.\n");
If the problem happens the last thing printed out is my debug output
before wait. The strange thing is that the problem doesn't seam to
happen so often since I have added the debug printouts. Could this be a
timing problem ? Could someone give me some hints how to debug this
further ? Any hints are welcome.
Thanks
Bernhard.
reply other threads:[~2004-09-07 18:48 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=413E015D.9010805@fs2k2.de \
--to=spam@fs2k2.de \
--cc=linux-kernel@vger.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.