[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 01/19] centralize handling of -icount
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 01/19] centralize handling of -icount |
Date: |
Mon, 21 Dec 2009 09:09:12 +0100 |
A simple patch to place together all handling of -icount.
Signed-off-by: Paolo Bonzini <address@hidden>
---
vl.c | 33 +++++++++++++++++++--------------
1 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/vl.c b/vl.c
index c0d98f5..e38cea7 100644
--- a/vl.c
+++ b/vl.c
@@ -890,8 +890,23 @@ static void icount_adjust_vm(void * opaque)
icount_adjust();
}
-static void init_icount_adjust(void)
+static void configure_icount(const char *option)
{
+ if (!option)
+ return;
+
+ if (strcmp(option, "auto") != 0) {
+ icount_time_shift = strtol(option, NULL, 0);
+ use_icount = 1;
+ return;
+ }
+
+ use_icount = 2;
+
+ /* 125MIPS seems a reasonable initial guess at the guest speed.
+ It will be corrected fairly quickly anyway. */
+ icount_time_shift = 3;
+
/* Have both realtime and virtual time triggers for speed adjustment.
The realtime trigger catches emulated time passing too slowly,
the virtual time trigger catches emulated time passing too fast.
@@ -4858,6 +4873,7 @@ int main(int argc, char **argv, char **envp)
uint32_t boot_devices_bitmap = 0;
int i;
int snapshot, linux_boot, net_boot;
+ const char *icount_option = NULL;
const char *initrd_filename;
const char *kernel_filename, *kernel_cmdline;
char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */
@@ -5578,12 +5594,7 @@ int main(int argc, char **argv, char **envp)
tb_size = 0;
break;
case QEMU_OPTION_icount:
- use_icount = 1;
- if (strcmp(optarg, "auto") == 0) {
- icount_time_shift = -1;
- } else {
- icount_time_shift = strtol(optarg, NULL, 0);
- }
+ icount_option = optarg;
break;
case QEMU_OPTION_incoming:
incoming = optarg;
@@ -5811,13 +5822,7 @@ int main(int argc, char **argv, char **envp)
fprintf(stderr, "could not initialize alarm timer\n");
exit(1);
}
- if (use_icount && icount_time_shift < 0) {
- use_icount = 2;
- /* 125MIPS seems a reasonable initial guess at the guest speed.
- It will be corrected fairly quickly anyway. */
- icount_time_shift = 3;
- init_icount_adjust();
- }
+ configure_icount(icount_option);
#ifdef _WIN32
socket_init();
--
1.6.5.2
- [Qemu-devel] [PATCH 00/19][RFC] Cleanups + split timer handling out of vl.o, Paolo Bonzini, 2009/12/21
- [Qemu-devel] [PATCH 01/19] centralize handling of -icount,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 02/19] add qemu_icount_round, Paolo Bonzini, 2009/12/21
- [Qemu-devel] [PATCH 03/19] avoid dubiously clever code in win32_start_timer, Paolo Bonzini, 2009/12/21
- [Qemu-devel] [PATCH 05/19] only one flag is needed for alarm_timer, Paolo Bonzini, 2009/12/21
- [Qemu-devel] [PATCH 04/19] fix error in win32_rearm_timer, Paolo Bonzini, 2009/12/21
- [Qemu-devel] [PATCH 07/19] add qemu_get_clock_ns, Paolo Bonzini, 2009/12/21
- [Qemu-devel] [PATCH 09/19] remove qemu_rearm_alarm_timer from main loop, Paolo Bonzini, 2009/12/21
- [Qemu-devel] [PATCH 08/19] move kbd/mouse events to event.c, Paolo Bonzini, 2009/12/21
- [Qemu-devel] [PATCH 11/19] use a bottom half to run timers, Paolo Bonzini, 2009/12/21