James Hollingshead wrote:
> 
> On Sat, Jul 22, 2000 at 01:09:46PM -0400, Kevin Lawton wrote:
> >   ftp://ftp.plex86.org/pub/plex86/plex86-2000_0722b.tar.gz
> >   ftp://ftp.plex86.org/pub/plex86/linux.img
> >   ftp://ftp.plex86.org/pub/plex86/initrd.img
> >
> > OK, for anyone interested in progress so far.  I'm getting part way through
> > booting
> > Linux.  Should get to a HLT instruction with IF=0. Probably a panic.  Not
> 
> Runs fine for me up to that HLT instruction. One thing I notice is
> that the bogoMIPS calculation is very unstable - on a few runs I got
> values over a range from 50 to 420, with values right the way through
> inbetween, on an otherwise unloaded system. Is this expected, and is
> it something that will disappear when the timing code changes you
> mention are carried out?


Yeah, this is expected.  Here's the deal.  The resolution of the time events
when in the monitor, depends on when the host system timer goes off.  Because
the SBE code does such a good job, loops end up running at completely native
speed.  Right now, there is nothing to interrupt a tight loop in the guest
other than when the host timer goes off.  Since the BogoMips calculation
is dependent on how mancy loop cycles are performed between interrupts,
it is quite arbitrary under plex86.

So let's say on a 500 BogoMip machine, the guest starts running right after
the las host interrupt.  Then a tight loop will run for nearly the complete
timer interval, and the BogoMip calc will be very close to that under
your host.  Maybe 495.  But if the calculation is done starting say half
way into the host timer interval, you might get 250.  Hope this makes sense.

The key to solving this is to make a timer of some kind fire off at
a give time, to break out of tight loops.  Now when heavily virtualized
code is being run, we have a lot of exceptions whereby we can take
timer readings, and ironically the time precision is higher.

-Kevin

Reply via email to