On Mon, Mar 12, 2012 at 10:52:18AM +0100, Igor Mammedov wrote:
On 03/11/2012 11:36 AM, Gleb Natapov wrote:
On Sat, Mar 10, 2012 at 12:47:26PM +0100, Igor Mammedov wrote:
Reduce amount of consumed cpu time (i.e. don't spin forever) if number of started cpus are more then expected. And print a bug message into debug port.
Signed-off-by: Igor Mammedovimammedo@redhat.com
src/smp.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/src/smp.c b/src/smp.c index 8c077a1..9933ac6 100644 --- a/src/smp.c +++ b/src/smp.c @@ -115,8 +115,14 @@ smp_probe(void) msleep(10); } else { u8 cmos_smp_count = inb_cmos(CMOS_BIOS_SMP_COUNT);
while (cmos_smp_count + 1 != readl(&CountCPUs))
while (cmos_smp_count + 1 != readl(&CountCPUs)) {
if (cmos_smp_count + 1< readl(&CountCPUs)) {
dprintf(1, "BUG: Expected %d cpu(s) but %d cpus started\n",
cmos_smp_count + 1, readl(&CountCPUs));
Shouldn't we print it to the console too?
I'm not sure if it's possible to print at this stage, but I'll try and re-post if it works.
If it is not possible currently may be we should move smp detection to later stage. Or do not hlt here and report error later. The easier for a user to see this error the easier it is for us to debug user's problems.
hlt();
} yield();
}
}
// Restore memory.
-- 1.7.7.6
-- Gleb.
--
Igor
-- Gleb.