History log of /external/qemu/target-i386/kvm.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e36a683b547e540c68bf9c5578e05b29c8676f47 25-Mar-2014 David 'Digit' Turner <digit@google.com> kvm: CPUOldState -> CPUState migration.

Change-Id: I1528b1fde21d42d6f0a3a77ce8ba827a9f23a5a1
/external/qemu/target-i386/kvm.c
aaef275467ba13162d52ef6f690fd97f9733eb58 25-Mar-2014 David 'Digit' Turner <digit@google.com> cpu_memory_rw_debug: Use CPUState instead of CPUOldState

Change-Id: I3c3440d6d13380dcde18260c54ebbba6e8616d6d
/external/qemu/target-i386/kvm.c
fed223d2bab55eda155e3463b9cb6966e69dd73c 24-Mar-2014 David 'Digit' Turner <digit@google.com> Move singlestep_enabled to CPUState.

The previous patch forgot to move this field from CPU_COMMON to
CPUState, so do it here.

Change-Id: I71ed4605c939eb6c23d3e70b08ea89e59842cdd0
/external/qemu/target-i386/kvm.c
6657678c3d86395084f6a699e73614195f06c445 24-Mar-2014 David 'Digit' Turner <digit@google.com> Introduce CPUState.

This patch splits the definitions previously found in CPUArchState,
to place some of them in a common data structure called CPUState,
to mirror upstream.

Note that upstream also makes CPUState a complete QOM object that
derives from DeviceState / DeviceClass, but this patch doesn't do
that. That's why the target-*/cpu-qom.h files, as well as
include/qom/cpu.h are not the real ones from upstream yet.

Future patches will get rid of CPUOldState, which is currently used
as an alias for CPUArchState, but will be replaced entirely by
CPUState, requiring changing the signature of many functions to
match upstream.

QOM-ification will probably happen after that, but may require
a few more patches due to layering / coupling issues.

Change-Id: Ifc33f8abe2aa80b20da13f5c83c109e37aff7e11

Conflicts:
cputlb.c
target-arm/op_helper.c
target-i386/op_helper.c
target-mips/op_helper.c
/external/qemu/target-i386/kvm.c
c005246ed03de874fdc432073ba8e5e8ebfed922 25-Feb-2014 David 'Digit' Turner <digit@google.com> Remove trailing spaces in misc sources.

Change-Id: I573d4e816112b7401b3c824fbe773b85a8601531
/external/qemu/target-i386/kvm.c
e2678e116c8cdb0f36b247a5bd9cfacc849362fc 16-Jan-2014 David 'Digit' Turner <digit@android.com> Rename CPUState to CPUOldState.

Upstream qemu has split the cpu state into two new data structures:

CPUState -> is used to model the CPU state through the QEMU
object model.

CPUArchState -> actually a macro that aliases CPUArmState,
CPUX86State or CPUMIPSState.

Both were part of the "CPUState" in the current emulator sources.

Previous patches introduced CPUArchState, as a simple alias to the
machine-specific state. This patch renames any use of CPUState in
the current code to CPUOldState, except within target-*/ directories
where it is replaced by CPU${ARCH}State instead.

This will allow bringing the upstream CPUState definition in the
source tree, and slowly migrate everything to the right location.

Change-Id: I88b79e6e89f1f36084dc2642e1cf415135e4da09
/external/qemu/target-i386/kvm.c
aa8236dc1b1ea300ab18716db5b8fab42aca3ca7 10-Jan-2014 David 'Digit' Turner <digit@android.com> qemu-malloc.c: Remove qemu-specific heap routines.

Remove all uses of qemu_malloc/malloc0/realloc/free/strdup/etc to use
the equivalent GLib functions (g_malloc, g_free, ...) as per upstream.

This also removes qemu-malloc.c since it's no longer required.

Change-Id: I3c36a0396b73dd114b8da385b43f56a2e54dbb15
/external/qemu/target-i386/kvm.c
34c48ff1e3ad5cd2084ca40188754d45f423750b 15-Dec-2013 David 'Digit' Turner <digit@android.com> Move headers to incude/sysemu/

+ arch_init.h, balloon.h, blockdev.h, dma.h, kvm.h,
sysemu.h -> include/sysemu/

+ kvm-android.h -> include/android/kvm.h

Change-Id: I3d334e1b6eea836fdcee9f36fe693cf4c74be54f
/external/qemu/target-i386/kvm.c
852088c7e08182c2de563872d558309815cbfa0d 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move headers to include/exec/

Change-Id: Ife43f9cd12a02aa98f408043b0cccb9fe45a9ff7
/external/qemu/target-i386/kvm.c
08c7228c50f8b27acba312c4d2f0c07d0ab6a06b 03-Jan-2013 Tom Knych <thomaswk@google.com> x86-kvm: only sync SREGS when doing address translation

cpu_synchronize_state is 10x or more expensive on AMD then on intel.
This makes all nand read/writes extremely slow (eg: mounting /system takes
over a minute when KVM is enabled on AMD).

Looking at hw/goldfish* all callers of cpu_synchronize_state want to do
is translate virtual to physical addresses. You can do that with 1 ioctl
(KVM_GET_SREGS). Performance on AMD is significant improved (matching
intel) and intel is not affected.

Converted all callers of cpu_synchronize_state in hw/goldfish-* to sync
over only KVM_GET_SREGS when running in KVM mode.

Change-Id: Id15c4e99c0f541527684fba23d639c9dee3525c6
Signed-off-by: Tom Knych <thomaswk@google.com>
/external/qemu/target-i386/kvm.c
bb0140b925cb2adce03ebc0885067ea3bfd19a20 28-May-2011 Jun Nakajima <jun.nakajima@intel.com> x86: Workaorund for the KVM GS_BASE MSR save/restore issue.

In some versions of the kvm module in Ubuntu, the host's GS_BASE MSR is not save/restored correctly
when running guests on 64-bit hosts if the qemu/emulator is 32-bit.
This patch implements a workaround in the emulator code.

Change-Id: If3ebe3cb49f377c5d0547c75f6ac3a3ceacdc375
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
/external/qemu/target-i386/kvm.c
36597756e589622ee6c6628efb47c1b130d5ee85 20-May-2011 David 'Digit' Turner <digit@android.com> x86: kvm: fix KVM build + enable auto-detection.

This patch fixes the build of KVM support in the x86 emulator by
copying official Ubuntu Lucid KVM headers into android/config/linux-*/

This removes the need to rely on the build machine's versions of these
headers, which caused various issues.

Also, by default, the emulator will now probe the system to see if it
can start in KVM mode automatically. See android-kvm.c for details.
You can see the result of the probing with the -verbose option.

IMPORTANT NOTE:
It looks like there is a bug in the KVM code when the emulator
is built as a 32-bit binary, running on a 64-bit kernel, so
we explicitely disable KVM when we detect this case. It's hard
to tell whether this is a bug in QEMU or some versions of the
KVM driver.

As such, KVM only works when building the emulator as a
64-bit program. For now, this is only possible with
"android-configure.sh --try-64", not the Android build system.

+ Add a new QEMU option (-disable-kvm) to explicitely disable KVM
if needed. This is an addition to -enable-kvm which already exists
(and forces usage of KVM).

Change-Id: I6a397cae29ab62b1c56fce95c1ee75a4664d6688
/external/qemu/target-i386/kvm.c
86797937017f52bff088d02edf64fb931177a7ea 29-Jan-2011 Jun Nakajima <jnakajim@gmail.com> New files are from the upstream QEMU (0.10.5), and the code is based on
the following commit (dated 2009-06-19, see CHANGES.TXT):

d2e9fd8f703203c2eeeed120b1ef6c3a6574e0ab

new file: hw/apic.c
new file: hw/fdc.h
new file: hw/fw_cfg.c
new file: hw/fw_cfg.h
new file: hw/i8254.c
new file: hw/i8259.c
new file: hw/ioapic.c
new file: hw/mc146818rtc.c
new file: hw/ne2000.c
new file: hw/pc.c
new file: hw/pckbd.c
new file: hw/piix_pci.c
new file: hw/ps2.c
new file: hw/ps2.h
new file: hw/smbios.c
new file: target-i386/TODO
new file: target-i386/cpu.h
new file: target-i386/exec.h
new file: target-i386/helper.c
new file: target-i386/helper.h
new file: target-i386/helper_template.h
new file: target-i386/kvm.c
new file: target-i386/machine.c
new file: target-i386/op_helper.c
new file: target-i386/ops_sse.h
new file: target-i386/ops_sse_header.h
new file: target-i386/svm.h
new file: target-i386/translate.c

Change-Id: I55c62ed7516f002c882705545e7c21997ece9927
/external/qemu/target-i386/kvm.c