[SeaBIOS] [PATCH 1/3] Halt if number of started cpus are more then expected

Gleb Natapov gleb at redhat.com
Mon Mar 12 11:14:53 CET 2012


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 Mammedov<imammedo at 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.



More information about the SeaBIOS mailing list