qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [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-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

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).