* [Qemu-devel] Timing problems
@ 2005-06-29 8:08 Alexander Toresson
2005-06-29 13:21 ` Oliver Gerlich
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Alexander Toresson @ 2005-06-29 8:08 UTC (permalink / raw)
To: qemu-devel
I'm running windows 2000 in qemu 0.7.0 with kqemu 0.6.2-1 on i386
debian linux. First thing I tried to do was to run a benchmark program
(qemu w/o kqemu vs qemu w/ kqemu). I got strange results, and I also
noted that timing didn't seem to be that good, so I re-tried to run
the benchmark program, but with the date & clock settings window in
the background. This is the result: The more cpu that is used in the
virtual cpu, the faster time flies by. For example, when it's nearly
idle, time is too slow. If it goes from idle to 100% cpu-use, time
flies by at 5x the speed it should. This is true both when I use kqemu
and when I don't. This cpu is capable of speedstep, but I have
disabled it while doing this test. I think I would get even more weird
results if I enabled it.
This makes it impossible to run a benchmark and get any useful results
out of it. Also, trying to run a game on qemu would be a disaster.
However, running normal programs aren't any problem. Except that I
have to be very quick when changing resolution in w2k (it should wait
15s, now time flies away and those 15 becomes 2s :)).
Before compiling qemu 0.7.0 with kqemu 0.6.2-1, I ran qemu
0.6.something, taken from the debian testing repository, and it had
the same problem.
Regards, Alexander Toresson
PS. I'm susprised nobody has seen this problem before. Is it just me
who experience it?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Timing problems
2005-06-29 8:08 [Qemu-devel] Timing problems Alexander Toresson
@ 2005-06-29 13:21 ` Oliver Gerlich
2005-06-29 14:48 ` Alexander Toresson
2005-06-29 13:43 ` malc
2005-11-07 22:46 ` [Qemu-devel] " Michael Smith
2 siblings, 1 reply; 7+ messages in thread
From: Oliver Gerlich @ 2005-06-29 13:21 UTC (permalink / raw)
To: Alexander Toresson, qemu-devel
Alexander Toresson wrote:
> I'm running windows 2000 in qemu 0.7.0 with kqemu 0.6.2-1 on i386
> debian linux. First thing I tried to do was to run a benchmark program
> (qemu w/o kqemu vs qemu w/ kqemu). I got strange results, and I also
> noted that timing didn't seem to be that good, so I re-tried to run
> the benchmark program, but with the date & clock settings window in
> the background. This is the result: The more cpu that is used in the
> virtual cpu, the faster time flies by. For example, when it's nearly
> idle, time is too slow. If it goes from idle to 100% cpu-use, time
> flies by at 5x the speed it should. This is true both when I use kqemu
> and when I don't. This cpu is capable of speedstep, but I have
> disabled it while doing this test. I think I would get even more weird
> results if I enabled it.
> This makes it impossible to run a benchmark and get any useful results
> out of it. Also, trying to run a game on qemu would be a disaster.
Not necessarily, Age of Empires 2 runs quite well under Qemu + Win98SE
(on an Athlon 2600+, host: Debian Linux, kernel 2.6.9).
> However, running normal programs aren't any problem. Except that I
> have to be very quick when changing resolution in w2k (it should wait
> 15s, now time flies away and those 15 becomes 2s :)).
>
> Before compiling qemu 0.7.0 with kqemu 0.6.2-1, I ran qemu
> 0.6.something, taken from the debian testing repository, and it had
> the same problem.
>
> Regards, Alexander Toresson
>
> PS. I'm susprised nobody has seen this problem before. Is it just me
> who experience it?
Although I use Visual Studio 5 and Age of Empires 2 inside Qemu (with
Win98SE and Win2k), I never noticed such problems, and the Windows clock
always seemed quite right (and VC++ stresses the CPU quite a lot!). But
admittedly I never ran benchmarks or had a closer look at the guest
system time.
Regards,
Oliver Gerlich
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Timing problems
2005-06-29 8:08 [Qemu-devel] Timing problems Alexander Toresson
2005-06-29 13:21 ` Oliver Gerlich
@ 2005-06-29 13:43 ` malc
2005-11-07 22:46 ` [Qemu-devel] " Michael Smith
2 siblings, 0 replies; 7+ messages in thread
From: malc @ 2005-06-29 13:43 UTC (permalink / raw)
To: Alexander Toresson, qemu-devel
On Wed, 29 Jun 2005, Alexander Toresson wrote:
> I'm running windows 2000 in qemu 0.7.0 with kqemu 0.6.2-1 on i386
> debian linux. First thing I tried to do was to run a benchmark program
> (qemu w/o kqemu vs qemu w/ kqemu). I got strange results, and I also
> noted that timing didn't seem to be that good, so I re-tried to run
> the benchmark program, but with the date & clock settings window in
> the background. This is the result: The more cpu that is used in the
> virtual cpu, the faster time flies by. For example, when it's nearly
> idle, time is too slow. If it goes from idle to 100% cpu-use, time
> flies by at 5x the speed it should. This is true both when I use kqemu
> and when I don't. This cpu is capable of speedstep, but I have
> disabled it while doing this test. I think I would get even more weird
> results if I enabled it.
> This makes it impossible to run a benchmark and get any useful results
> out of it. Also, trying to run a game on qemu would be a disaster.
> However, running normal programs aren't any problem. Except that I
> have to be very quick when changing resolution in w2k (it should wait
> 15s, now time flies away and those 15 becomes 2s :)).
>
> Before compiling qemu 0.7.0 with kqemu 0.6.2-1, I ran qemu
> 0.6.something, taken from the debian testing repository, and it had
> the same problem.
>
> Regards, Alexander Toresson
>
> PS. I'm susprised nobody has seen this problem before. Is it just me
> who experience it?
>
CPU frequency scaling might be the cause. If your OS uses speedstep
or similar tech QEMU timers will misbehave.
--
mailto:malc@pulsesoft.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Timing problems
2005-06-29 13:21 ` Oliver Gerlich
@ 2005-06-29 14:48 ` Alexander Toresson
0 siblings, 0 replies; 7+ messages in thread
From: Alexander Toresson @ 2005-06-29 14:48 UTC (permalink / raw)
To: qemu-devel
Oliver Gerlich wrote:
> Alexander Toresson wrote:
> > I'm running windows 2000 in qemu 0.7.0 with kqemu 0.6.2-1 on i386
> > debian linux. First thing I tried to do was to run a benchmark program
> > (qemu w/o kqemu vs qemu w/ kqemu). I got strange results, and I also
> > noted that timing didn't seem to be that good, so I re-tried to run
> > the benchmark program, but with the date & clock settings window in
> > the background. This is the result: The more cpu that is used in the
> > virtual cpu, the faster time flies by. For example, when it's nearly
> > idle, time is too slow. If it goes from idle to 100% cpu-use, time
> > flies by at 5x the speed it should. This is true both when I use kqemu
> > and when I don't. This cpu is capable of speedstep, but I have
> > disabled it while doing this test. I think I would get even more weird
> > results if I enabled it.
> > This makes it impossible to run a benchmark and get any useful results
> > out of it. Also, trying to run a game on qemu would be a disaster.
>
> Not necessarily, Age of Empires 2 runs quite well under Qemu + Win98SE
> (on an Athlon 2600+, host: Debian Linux, kernel 2.6.9).
>
> > However, running normal programs aren't any problem. Except that I
> > have to be very quick when changing resolution in w2k (it should wait
> > 15s, now time flies away and those 15 becomes 2s :)).
> >
> > Before compiling qemu 0.7.0 with kqemu 0.6.2-1, I ran qemu
> > 0.6.something, taken from the debian testing repository, and it had
> > the same problem.
> >
> > Regards, Alexander Toresson
> >
> > PS. I'm susprised nobody has seen this problem before. Is it just me
> > who experience it?
>
> Although I use Visual Studio 5 and Age of Empires 2 inside Qemu (with
> Win98SE and Win2k), I never noticed such problems, and the Windows clock
> always seemed quite right (and VC++ stresses the CPU quite a lot!). But
> admittedly I never ran benchmarks or had a closer look at the guest
> system time.
>
Well, it happens any time I stress the cpu. Having the clock settings
window open and then double-clicking on My Documents is enough to see
the clock accelerate and then go back to normal speed.
malc wrote:
>CPU frequency scaling might be the cause. If your OS uses speedstep
>or similar tech QEMU timers will misbehave.
This was tested when speedstep was disabled, which I did by shutting
down powernowd. Then cat /proc/cpuinfo shows 1.86ghz constantly, which
is the maximum cpu frequency.
Regards, Alexander Toresson
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Timing problems
@ 2005-08-28 19:23 Sven Zenker
0 siblings, 0 replies; 7+ messages in thread
From: Sven Zenker @ 2005-08-28 19:23 UTC (permalink / raw)
To: qemu-devel
Hi all,
as a new qemu user, let me first of all say that qemu, especially in
combination with kqemu is a great piece of software. Many thanks to the
developer(s).
Since I am using a Laptop with a Pentium M CPU with SpeedStep and am
forced to use XP SP2 as a guest OS (Suse 9.3 is host OS), it wouldn't
work reliably for me, for reasons mentioned previously in this thread
(system services timing out at startup, networking problems etc.).
Really needing a working emulator bad, I came up with the following ugly
hack, which leads to a stable and network enabled XP SP 2 running in
qemu on my SpeedStep machine, with the side effect of having an accurate
real time clock in the guest OS again. It simply replaces the virtual
timer mechanism based on CPU tick count (which is totally messed up in a
SpeedStep setting) with calls to the realtime clock. It should work even
when emulation is stopped intermittently, I hope, since the built in
"virtual clock stop" mechanism ist left unchanged.
I modified only the I386 code, so to make this work on other machines,
more modifications would be necessary:
++++++++++++++++++++++++++++++++
qemu-0.7.1 # diff vl.c.org vl.c
503d502
<
505d503
<
508,510c506
< int64_t val;
< asm volatile ("rdtsc" : "=A" (val));
< return val;
---
> return get_clock();
512d507
<
594,605c589
< int64_t usec, ticks;
<
< usec = get_clock();
< ticks = cpu_get_real_ticks();
< #ifdef _WIN32
< Sleep(50);
< #else
< usleep(50 * 1000);
< #endif
< usec = get_clock() - usec;
< ticks = cpu_get_real_ticks() - ticks;
< ticks_per_sec = (ticks * 1000000LL + (usec >> 1)) / usec;
---
> ticks_per_sec = 1000000LL; /* our real time clock resolution */
+++++++++++++++++++++++++++++++++
and
+++++++++++++++++++++++++++++++++
qemu-0.7.1/linux-user # diff main.c.org main.c
113,115c113
< int64_t val;
< asm volatile ("rdtsc" : "=A" (val));
< return val;
---
> return get_clock();
return get_clock();
---
> return val;
++++++++++++++++++++++++++++++
This is of course an ugly hack and sure to affect performance, but at
least, it makes XP work for me.
Please let me know your thoughts.
Best regards,
Sven Zenker
--
Dr. med. Sven Zenker
Research Associate
Center for Inflammation and Regenerative Modeling
Dpt. of Critical Care Medicine
University of Pittsburgh Medical Center
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] Re: Timing problems
2005-06-29 8:08 [Qemu-devel] Timing problems Alexander Toresson
2005-06-29 13:21 ` Oliver Gerlich
2005-06-29 13:43 ` malc
@ 2005-11-07 22:46 ` Michael Smith
2005-11-08 15:24 ` Sven Zenker
2 siblings, 1 reply; 7+ messages in thread
From: Michael Smith @ 2005-11-07 22:46 UTC (permalink / raw)
To: qemu-devel
Alexander Toresson <alexander.toresson <at> gmail.com> writes:
> time flies by at 5x the speed it should.
> PS. I'm susprised nobody has seen this problem before. Is it just me
> who experience it?
No, I experience this as well.
I'm running Qemu 0.7.2 with Linux 2.6.14 (vanilla kernel) as host OS and Windows
XP Professional as guest OS. If the VM is running and actively using CPU, time
runs much faster in the guest than in the host. On the other hand, if the VM is
mostly idle, time is slower in the guest than in the host OS.
This odd clock behavior seems to cause other problems in the guest OS,
particularly during boot/service initialization.
I can recreate this behavior with or without KQemu.
I can recreate this behavior with or without CPU frequency scaling enabled.
It is frustrating, and I would be very happy if someone could suggest a fix or
workaround.
Thanks,
Mike Smith
mas3f@alumni.virginia.edu
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Re: Timing problems
2005-11-07 22:46 ` [Qemu-devel] " Michael Smith
@ 2005-11-08 15:24 ` Sven Zenker
0 siblings, 0 replies; 7+ messages in thread
From: Sven Zenker @ 2005-11-08 15:24 UTC (permalink / raw)
To: qemu-devel
Hi,
people have had this problem with SpeedStep machines, where it is
related to qemu timing being based on CPU cycle count, which is thereby
messed up.
Since it seems to occur with frequency scaling disabled as well, could
this be related to running on a HyperThreading CPU? Not sure what
happens there with the cycle counts, but to verify, you could try to
apply my previously posted patch that substituted the built-in mechanism
with realtime clock calls (was for 0.7.1, though, I think).
Best,
Sven
Am Montag, den 07.11.2005, 22:46 +0000 schrieb Michael Smith:
> Alexander Toresson <alexander.toresson <at> gmail.com> writes:
>
> > time flies by at 5x the speed it should.
>
> > PS. I'm susprised nobody has seen this problem before. Is it just me
> > who experience it?
>
> No, I experience this as well.
>
> I'm running Qemu 0.7.2 with Linux 2.6.14 (vanilla kernel) as host OS and Windows
> XP Professional as guest OS. If the VM is running and actively using CPU, time
> runs much faster in the guest than in the host. On the other hand, if the VM is
> mostly idle, time is slower in the guest than in the host OS.
>
> This odd clock behavior seems to cause other problems in the guest OS,
> particularly during boot/service initialization.
>
> I can recreate this behavior with or without KQemu.
>
> I can recreate this behavior with or without CPU frequency scaling enabled.
>
> It is frustrating, and I would be very happy if someone could suggest a fix or
> workaround.
>
> Thanks,
> Mike Smith
> mas3f@alumni.virginia.edu
>
>
>
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2005-11-08 16:11 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-29 8:08 [Qemu-devel] Timing problems Alexander Toresson
2005-06-29 13:21 ` Oliver Gerlich
2005-06-29 14:48 ` Alexander Toresson
2005-06-29 13:43 ` malc
2005-11-07 22:46 ` [Qemu-devel] " Michael Smith
2005-11-08 15:24 ` Sven Zenker
-- strict thread matches above, loose matches on Subject: below --
2005-08-28 19:23 [Qemu-devel] " Sven Zenker
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).