On Tue, Nov 24, 2009 at 06:59:01PM +0200, Gleb Natapov wrote:
> On Tue, Nov 24, 2009 at 10:57:02AM -0500, Kevin O'Connor wrote:
> > On Mon, Nov 23, 2009 at 08:30:41PM +0200, Gleb Natapov wrote:
> > > On Mon, Nov 23, 2009 at 07:15:55PM +0100, Sebastian Herbszt wrote:
> > > > Ok - sounds good if bios_characteristics gets proper system based 
> > > > values.
> > > > 
> > > Kevin can you help here. I can send a patch, but I am not sure I know
> > > everything SeaBIOS supports.
> > 
> > I don't know what bios_characteristics should be set to.
> > 
> http://www.phoenix.com/NR/rdonlyres/51EEA1E6-20C1-4FA2-A3D8-AD8E45335C47/0/specssmbios.pdf
> Page 30 have the description.

   Bit 4   ISA is supported
   Bit 7   PCI is supported
   Bit 9   Plug and Play is supported
  Bit 10   APM is supported
  Bit 12   BIOS shadowing is allowed
  Bit 15   Boot from CD is supported
  Bit 16   Selectable Boot is supported
  Bit 19   EDD (Enhanced Disk Drive) Specification is supported
  Bit 22   Int 13h - 5.25" / 360 KB Floppy Services are supported
  Bit 23   Int 13h - 5.25" /1.2MB Floppy Services are supported
  Bit 24   Int 13h - 3.5" / 720 KB Floppy Services are supported
  Bit 25   Int 13h - 3.5" / 2.88 MB Floppy Services are supported
  Bit 27   Int 9h, 8042 Keyboard services are supported
  Bit 28   Int 14h, Serial Services are supported
  Bit 29   Int 17h, Printer Services are supported
  Bit 30   Int 10h, CGA/Mono Video Services are supported

Several of the above are dependent on CONFIG_xxx settings.

However, I'm not really sure how the above overlaps with your SVVP
patch..

> It is used already where appropriate. To fill processor_id field in type
> 4 table. CPU manufacturer is different issue. CPU a guest is running on is
> not manufactured by Intel or AMD, it is emulated by QEMU.

Okay.

> > > > >>>>>>>-    p->max_speed = 0; /* unknown */
> > > > >>>>>>>-    p->current_speed = 0; /* unknown */
> > > > >>>>>>>+    p->max_speed = 2000;
> > > > >>>>>>>+    p->current_speed = 2000;
> > 
> > SeaBIOS detects the current Mhz - see calibrate_tsc() in src/clock.c.
> > 
> How accurate is it? What if I boot 100 guests on 16 cpu host
> simultaneously? Not uncommon scenario.

It's not very accurate under qemu due to Linux power saving code which
will frequently change cpu speeds.  (The length of the runqueue
doesn't seem to skew it, but the power stuff does.)

>Those field really have no
> meaning in virtualization environment. I'd rather have predictable
> values there from boot to boot. Who know what Windows may use them for.

Fair enough.  There is also a risk that Windows will do the wrong
thing with the dummy values.  However, I agree with your point about
consistency.

-Kevin


Reply via email to