diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2009-08-10 17:07:24 -0500 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-08-24 08:02:55 -0500 |
commit | 4a1418e07bdcfaa3177739e04707ecaec75d89e1 (patch) | |
tree | a68b7017b184850330000afa416d4ed419bb736a /monitor.c | |
parent | 0953a80f04a9771323931123cbe486e9fd8ffe20 (diff) |
Unbreak large mem support by removing kqemu
kqemu introduces a number of restrictions on the i386 target. The worst is that
it prevents large memory from working in the default build.
Furthermore, kqemu is fundamentally flawed in a number of ways. It relies on
the TSC as a time source which will not be reliable on a multiple processor
system in userspace. Since most modern processors are multicore, this severely
limits the utility of kqemu.
kvm is a viable alternative for people looking to accelerate qemu and has the
benefit of being supported by the upstream Linux kernel. If someone can
implement work arounds to remove the restrictions introduced by kqemu, I'm
happy to avoid and/or revert this patch.
N.B. kqemu will still function in the 0.11 series but this patch removes it from
the 0.12 series.
Paul, please Ack or Nack this patch.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'monitor.c')
-rw-r--r-- | monitor.c | 57 |
1 files changed, 0 insertions, 57 deletions
@@ -1390,36 +1390,6 @@ static void tlb_info(Monitor *mon) #endif -static void do_info_kqemu(Monitor *mon) -{ -#ifdef CONFIG_KQEMU - CPUState *env; - int val; - val = 0; - env = mon_get_cpu(); - if (!env) { - monitor_printf(mon, "No cpu initialized yet"); - return; - } - val = env->kqemu_enabled; - monitor_printf(mon, "kqemu support: "); - switch(val) { - default: - case 0: - monitor_printf(mon, "disabled\n"); - break; - case 1: - monitor_printf(mon, "enabled for user code\n"); - break; - case 2: - monitor_printf(mon, "enabled for user and kernel code\n"); - break; - } -#else - monitor_printf(mon, "kqemu support: not compiled\n"); -#endif -} - static void do_info_kvm(Monitor *mon) { #ifdef CONFIG_KVM @@ -1454,14 +1424,6 @@ static void do_info_numa(Monitor *mon) #ifdef CONFIG_PROFILER -int64_t kqemu_time; -int64_t qemu_time; -int64_t kqemu_exec_count; -int64_t dev_time; -int64_t kqemu_ret_int_count; -int64_t kqemu_ret_excp_count; -int64_t kqemu_ret_intr_count; - static void do_info_profile(Monitor *mon) { int64_t total; @@ -1472,25 +1434,8 @@ static void do_info_profile(Monitor *mon) dev_time, dev_time / (double)ticks_per_sec); monitor_printf(mon, "qemu time %" PRId64 " (%0.3f)\n", qemu_time, qemu_time / (double)ticks_per_sec); - monitor_printf(mon, "kqemu time %" PRId64 " (%0.3f %0.1f%%) count=%" - PRId64 " int=%" PRId64 " excp=%" PRId64 " intr=%" - PRId64 "\n", - kqemu_time, kqemu_time / (double)ticks_per_sec, - kqemu_time / (double)total * 100.0, - kqemu_exec_count, - kqemu_ret_int_count, - kqemu_ret_excp_count, - kqemu_ret_intr_count); qemu_time = 0; - kqemu_time = 0; - kqemu_exec_count = 0; dev_time = 0; - kqemu_ret_int_count = 0; - kqemu_ret_excp_count = 0; - kqemu_ret_intr_count = 0; -#ifdef CONFIG_KQEMU - kqemu_record_dump(); -#endif } #else static void do_info_profile(Monitor *mon) @@ -1841,8 +1786,6 @@ static const mon_cmd_t info_cmds[] = { #endif { "jit", "", do_info_jit, "", "show dynamic compiler info", }, - { "kqemu", "", do_info_kqemu, - "", "show KQEMU information", }, { "kvm", "", do_info_kvm, "", "show KVM information", }, { "numa", "", do_info_numa, |