Re: [Qemu-devel] E5-2620v2 - emulation stop error

Dr. David Alan Gilbert
2015-03-11T17:59:13Z

* Kevin O'Connor (kevin@koconnor.net) wrote:
> On Wed, Mar 11, 2015 at 04:52:03PM +0000, Dr. David Alan Gilbert wrote:
> > * Kevin O'Connor (kevin@koconnor.net) wrote:
> > > So, I couldn't get this to fail on my older AMD machine at all with
> > > the default SeaBIOS code. But, when I change the code with the patch
> > > below, it failed right away.
> [...]
> > > And the failed debug output looks like:
> > >
> > > SeaBIOS (version rel-1.8.0-7-gd23eba6-dirty-20150311_121819-morn.localdomain)
> > > [...]
> > > cmos_smp_count0=20
> > > [...]
> > > cmos_smp_count=1
> > > cmos_smp_count2=1/20
> > > Found 1 cpu(s) max supported 20 cpu(s)
> > >
> > > I'm going to check the assembly for a compiler error, but is it
> > > possible QEMU is returning incorrect data in cmos index 0x5f?
>
> I checked the SeaBIOS assembler and it looks sane. So, I think the
> question is, why is QEMU sometimes returning a 0 instead of 127 from
> cmos 0x5f.

My reading of the logs I've just created is that qemu doesn't think
it's ever being asked to read 5f in the failed case:

good:

pc_cmos_init 5f setting smp_cpus=20
cmos: read index=0x0f val=0x00
cmos: read index=0x34 val=0x00
cmos: read index=0x35 val=0x3f
cmos: read index=0x38 val=0x30
cmos: read index=0x3d val=0x12
cmos: read index=0x38 val=0x30
cmos: read index=0x0b val=0x02
cmos: read index=0x0d val=0x80
cmos: read index=0x5f val=0x13 Yeh!
cmos: read index=0x0f val=0x00
cmos: read index=0x0f val=0x00
cmos: read index=0x0f val=0x00

bad:
pc_cmos_init 5f setting smp_cpus=20
cmos: read index=0x0f val=0x00
cmos: read index=0x34 val=0x00
cmos: read index=0x35 val=0x3f
cmos: read index=0x38 val=0x30
cmos: read index=0x3d val=0x12
cmos: read index=0x38 val=0x30
cmos: read index=0x0b val=0x02
cmos: read index=0x0d val=0x80 Oh!
cmos: read index=0x0f val=0x00
cmos: read index=0x0f val=0x00
cmos: read index=0x0f val=0x00

Dave

>
> > > David, any chance you can recompile seabios and double check your
> > > output?
> >
> > Done;
> >
> > =========== Working ===========
> > SeaBIOS (version rel-1.8.0-0-g4c59f5d-dirty-20150311_164408-dgilbert-t530)
> [...]
> > cmos_smp_count0=20
> > cmos_smp_count=20
> > cmos_smp_count2=20/20
> > Found 20 cpu(s) max supported 20 cpu(s)
> [...]
> > =========== Broken ===========
> > SeaBIOS (version rel-1.8.0-0-g4c59f5d-dirty-20150311_164408-dgilbert-t530)
> [...]
> > cmos_smp_count0=20
> > cmos_smp_count=1
> > cmos_smp_count2=1/20
> > Found 1 cpu(s) max supported 20 cpu(s)
>
> That's the same pattern I see.
>
> -Kevin
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK