Hi.
I generate little speed up hack:
1) new TICKS_BEFORE_POLL constant from make cpu loop before
call poll().
2) call DMA_run() if sb16 or floppy present
3) also, for extreme overclocker: if change MAX_FD from 2 to 1,
you can make very little speed up also ;-)
--- vl.c~ 2004-05-17 20:15:26.000000000 +0400
+++ vl.c 2004-05-17 19:52:44.000000000 +0400
@@ -1634,6 +1634,8 @@
}
}
+#define TICKS_BEFORE_POLL 100
+
int main_loop(void)
{
#ifndef _WIN32
@@ -1641,6 +1643,7 @@
IOHandlerRecord *ioh, *ioh_next;
uint8_t buf[4096];
int n, max_size;
+ int tick_before_poll=TICKS_BEFORE_POLL;
#endif
int ret, timeout;
CPUState *env = global_env;
@@ -1670,6 +1673,11 @@
Sleep(timeout);
#else
+ if(tick_before_poll!=0 && timeout==0) {
+ tick_before_poll--;
+ goto ltick_before_poll;
+ }
+ tick_before_poll=TICKS_BEFORE_POLL;
/* poll any events */
/* XXX: separate device handlers from system ones */
pf = ufds;
@@ -1741,6 +1749,7 @@
}
#endif
+ ltick_before_poll:
#endif
if (vm_running) {
@@ -1750,10 +1759,18 @@
if (audio_enabled) {
/* XXX: add explicit timer */
SB16_run();
- }
+ DMA_run();
+ } else {
+ int i;
- /* run dma transfers, if any */
- DMA_run();
+ /* run dma transfers, if any */
+ for(i = 0; i < MAX_FD; i++) {
+ if(fd_table[i]) {
+ DMA_run();
+ break;
+ }
+ }
+ }
}
/* real time timers */
--w
vodz
_______________________________________________
Qemu-devel mailing list
address@hidden
http://mail.nongnu.org/mailman/listinfo/qemu-devel