4a1418e07b
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>
33 lines
1.1 KiB
Plaintext
33 lines
1.1 KiB
Plaintext
Correctness issues:
|
|
|
|
- some eflags manipulation incorrectly reset the bit 0x2.
|
|
- SVM: test, cpu save/restore, SMM save/restore.
|
|
- x86_64: lcall/ljmp intel/amd differences ?
|
|
- better code fetch (different exception handling + CS.limit support)
|
|
- user/kernel PUSHL/POPL in helper.c
|
|
- add missing cpuid tests
|
|
- return UD exception if LOCK prefix incorrectly used
|
|
- test ldt limit < 7 ?
|
|
- fix some 16 bit sp push/pop overflow (pusha/popa, lcall lret)
|
|
- full support of segment limit/rights
|
|
- full x87 exception support
|
|
- improve x87 bit exactness (use bochs code ?)
|
|
- DRx register support
|
|
- CR0.AC emulation
|
|
- SSE alignment checks
|
|
- fix SSE min/max with nans
|
|
|
|
Optimizations/Features:
|
|
|
|
- add SVM nested paging support
|
|
- add VMX support
|
|
- add AVX support
|
|
- add SSE5 support
|
|
- fxsave/fxrstor AMD extensions
|
|
- improve monitor/mwait support
|
|
- faster EFLAGS update: consider SZAP, C, O can be updated separately
|
|
with a bit field in CC_OP and more state variables.
|
|
- evaluate x87 stack pointer statically
|
|
- find a way to avoid translating several time the same TB if CR0.TS
|
|
is set or not.
|