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 /target-i386/op_helper.c | |
parent | 0953a80f04a9771323931123cbe486e9fd8ffe20 (diff) | |
download | qemu-4a1418e07bdcfaa3177739e04707ecaec75d89e1.tar.gz qemu-4a1418e07bdcfaa3177739e04707ecaec75d89e1.tar.bz2 qemu-4a1418e07bdcfaa3177739e04707ecaec75d89e1.zip |
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 'target-i386/op_helper.c')
-rw-r--r-- | target-i386/op_helper.c | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/target-i386/op_helper.c b/target-i386/op_helper.c index 6808a35963..c3f5af69b5 100644 --- a/target-i386/op_helper.c +++ b/target-i386/op_helper.c @@ -1111,14 +1111,6 @@ void helper_sysret(int dflag) env->eflags |= IF_MASK; cpu_x86_set_cpl(env, 3); } -#ifdef CONFIG_KQEMU - if (kqemu_is_ok(env)) { - if (env->hflags & HF_LMA_MASK) - CC_OP = CC_OP_EFLAGS; - env->exception_index = -1; - cpu_loop_exit(); - } -#endif } #endif @@ -2506,12 +2498,6 @@ void helper_lcall_protected(int new_cs, target_ulong new_eip, SET_ESP(sp, sp_mask); EIP = offset; } -#ifdef CONFIG_KQEMU - if (kqemu_is_ok(env)) { - env->exception_index = -1; - cpu_loop_exit(); - } -#endif } /* real and vm86 mode iret */ @@ -2792,24 +2778,11 @@ void helper_iret_protected(int shift, int next_eip) helper_ret_protected(shift, 1, 0); } env->hflags2 &= ~HF2_NMI_MASK; -#ifdef CONFIG_KQEMU - if (kqemu_is_ok(env)) { - CC_OP = CC_OP_EFLAGS; - env->exception_index = -1; - cpu_loop_exit(); - } -#endif } void helper_lret_protected(int shift, int addend) { helper_ret_protected(shift, 0, addend); -#ifdef CONFIG_KQEMU - if (kqemu_is_ok(env)) { - env->exception_index = -1; - cpu_loop_exit(); - } -#endif } void helper_sysenter(void) @@ -2882,12 +2855,6 @@ void helper_sysexit(int dflag) } ESP = ECX; EIP = EDX; -#ifdef CONFIG_KQEMU - if (kqemu_is_ok(env)) { - env->exception_index = -1; - cpu_loop_exit(); - } -#endif } #if defined(CONFIG_USER_ONLY) @@ -3211,15 +3178,6 @@ void helper_rdmsr(void) val = env->kernelgsbase; break; #endif -#ifdef CONFIG_KQEMU - case MSR_QPI_COMMBASE: - if (env->kqemu_enabled) { - val = kqemu_comm_base; - } else { - val = 0; - } - break; -#endif case MSR_MTRRphysBase(0): case MSR_MTRRphysBase(1): case MSR_MTRRphysBase(2): |