History log of /external/qemu/cpus.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
af1a7207f643bbb6c7a9b5f68089dc60c34e33ce 30-Apr-2014 yucheng yu <yu-cheng.yu@intel.com> Fixed passing CPUState to hax_init_vcpu().

Signed-off-by: yucheng yu <yu-cheng.yu@intel.com>
/external/qemu/cpus.c
7f38c7f905384c064b88fbdfa2eb054a92be63f3 26-Mar-2014 David 'Digit' Turner <digit@google.com> hax: CPUOldState -> CPUState

Change-Id: I4352da69e3a4e064a9fbaebee1dcb717cbb329b7
/external/qemu/cpus.c
e36a683b547e540c68bf9c5578e05b29c8676f47 25-Mar-2014 David 'Digit' Turner <digit@google.com> kvm: CPUOldState -> CPUState migration.

Change-Id: I1528b1fde21d42d6f0a3a77ce8ba827a9f23a5a1
/external/qemu/cpus.c
0b1a84571c04503c5fb1ac012483f03454e2b140 25-Mar-2014 David 'Digit' Turner <digit@google.com> gdb: CPUOldState -> CpuState.

Change parameter type and modify callers.

Change-Id: Iafcfe694279f715ed0b0fd92a55dfe884d0330e5
/external/qemu/cpus.c
bf7a22f3a6c38d359d2e933dec4706d1c7375f0a 25-Mar-2014 David 'Digit' Turner <digit@google.com> Move cpu_xxx functions to qom/cpu.h

This patch moves a few CPU-releated function declarations to
include/qom/cpu.h, while changing their signature to take a
CPUState instead of a CPUOldState.

Change-Id: I5f09b522dc755be334973a27f58b6704fbccc4c6
/external/qemu/cpus.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/cpus.c
4ab1225535dfc5fbcbde37a171b39224ea34e30b 24-Mar-2014 David 'Digit' Turner <digit@google.com> exec.c: Use a QTAILQ to list CPUs.

This introduces CPUState, a mere typedef to CPUOldState for now,
and changes the way CPUs are listed in QEMU. The goal is to get
closer to upstream, while also allowing really separating CPUState
from CPUArmState in future patches.

+ Move "current_cpu" to a thread-local variable on Linux, just like
upstream. Testing shows this doesn't affect performance.

Change-Id: Id07bbef4ba1584e607bec647d5117ac755c48ce6
/external/qemu/cpus.c
e0444718a051c860aa1ff0079d19f1b25c008c1d 02-Apr-2014 David 'Digit' Turner <digit@google.com> Remove two unused includes of dyngen-exec.h

Change-Id: Ie2ccfb10067f49f34d50383003de6bc66c893fee
/external/qemu/cpus.c
a889d35e76c8ea18caf70c738fd585c64b857369 20-Mar-2014 David 'Digit' Turner <digit@google.com> target-*/exec.h cleanup

This patch gets rid of target-*/exec.h headers by moving the corresponding
definitions either inside target-*/op_helper.c, or dyngen-exec.h for the
global register-based 'env' value, which will be removed in future patches.

Upstream 3e4571724fb92c77de81d8b54957de8232be6706

Change-Id: I513d5c27c01c6dc727c1ce6fb7f3a7a5dc03800f
/external/qemu/cpus.c
93949dc9a6f5a702db214d19080397a9e94b45f6 18-Mar-2014 David 'Digit' Turner <digit@google.com> Move cpu_has_work and cpu_pc_from_tb to cpu.h

Upstream f081c76ccfdbc1fdaa90fa5eb6abad46c1b5bfa8

Change-Id: I6f871f67404e13ba0c5070370542c0166814da02
/external/qemu/cpus.c
bf2340f1eae08ddada9ed09490aa83e0a1bd7586 18-Mar-2014 David 'Digit' Turner <digit@google.com> cpu-exec: unify do_interrupt call

Upstream e694d4e289b05d0c9b118850eff961aa9ca33183
Upstream 3c688828bcb3afa2744e1f1729a40eef4a575b56
Upstream d8108fb187bb68459cfe7dca4b5c983db33bcc7b

Change-Id: Ia492dae677ddfe052768b943f8ea275fab8a9c49
/external/qemu/cpus.c
5cb5c0b8c5145dc0002b24e1421a3fa7a697475e 17-Feb-2014 David 'Digit' Turner <digit@google.com> savevm.c: Getting closer to upstream.

This patch refactors savevm.c considerably to get much closer
to upstream. The main benefit is the introduction of savevm_register()
and savevm_unregister() functions, which allow the client to provide
a description of the state through a VMStateDescription structure.

The 'legacy' register_savevm() and unregister_savevm() are still
provided (just like upstream does). Future patches will 'upgrade'
our virtual devices to the new interface.

NOTE: Since DeviceState is not implemented properly yet, qdev_get_path()
is stubbed to always return NULL.

Change-Id: I7bfa201da40a0e470fafde6ccc002a4216ecd9c1
/external/qemu/cpus.c
dcda949f769a11b197f4784fe299a448d87e6e14 16-Feb-2014 David 'Digit' Turner <digit@google.com> qemu-timer.c: Use upstream version.

This completely modifies the implementation of timers to match upstream,
the only difference is that the oddly-placed qemu_gpoll_ns() function is
disabled (it's not used yet).

Most of the changes here (but not all), were applied through the following
sed script:

s|qemu_get_clock\s*(\s*vm_clock\s*)|qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL)|g
s|qemu_get_clock\s*(\s*rt_clock\s*)|qemu_clock_get_ms(QEMU_CLOCK_REALTIME)|g
s|qemu_get_clock_ns\s*(\s*vm_clock\s*)|qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL)|g
s|qemu_get_clock_ns\s*(\s*rt_clock\s*)|qemu_clock_get_ns(QEMU_CLOCK_REALTIME)|g
s|qemu_get_clock_ms\s*(\s*vm_clock\s*)|qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL)|g
s|qemu_get_clock_ms\s*(\s*rt_clock\s*)|qemu_clock_get_ms(QEMU_CLOCK_REALTIME)|g
s|qemu_get_clock_ms\s*(\s*host_clock\s*)|qemu_clock_get_ms(QEMU_CLOCK_HOST)|g
s|qemu_get_clock_ms\s*(\s*SHAPER_CLOCK\s*)|qemu_clock_get_ms(SHAPER_CLOCK)|g
s|qemu_mod_timer\s*(|timer_mod(|g
s|qemu_del_timer\s*(|timer_del(|g
s|qemu_free_timer\s*(|timer_free(|g
s|qemu_new_timer_ms\s*(\s*rt_clock,|timer_new(QEMU_CLOCK_REALTIME, SCALE_MS,|g
s|qemu_new_timer_ns\s*(\s*rt_clock,|timer_new(QEMU_CLOCK_REALTIME, SCALE_NS,|g
s|qemu_new_timer_ms\s*(\s*vm_clock,|timer_new(QEMU_CLOCK_VIRTUAL, SCALE_MS,|g
s|qemu_new_timer_ns\s*(\s*vm_clock,|timer_new(QEMU_CLOCK_VIRTUAL, SCALE_NS,|g
s|qemu_new_timer_ms\s*(\s*host_clock,|timer_new(QEMU_CLOCK_HOST, SCALE_MS,|g
s|qemu_new_timer_ns\s*(\s*host_clock,|timer_new(QEMU_CLOCK_HOST, SCALE_NS,|g
s|qemu_new_timer_ms\s*(\s*SHAPER_CLOCK\s*,|timer_new(SHAPER_CLOCK, SCALE_MS,|g
s|qemu_put_timer\s*(|timer_put(|g
s|qemu_get_timer\s*(|timer_get(|g
s|qemu_timer_pending\s*(|timer_pending(|g
s|qemu_clock_next_deadline\s*(\s*vm_clock|qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL|g
s|qemu_clock_next_deadline\s*(\s*rt_clock|qemu_clock_deadline_ns_all(QEMU_CLOCK_REALTIME|g
s|qemu_clock_next_deadline\s*(\s*host_clock|qemu_clock_deadline_ns_all(QEMU_CLOCK_HOST|g

+ Disable icount-based clock warping/adjustments. It will be re-enabled in the future
after cpu emulation has been completely refactored.

Change-Id: Ifbcf4a52654eed3a08dfe59b0546a75d4627f758
/external/qemu/cpus.c
f01835519fdcb736449d64204c535cbc60f06ca6 16-Feb-2014 David 'Digit' Turner <digit@google.com> Move some cpu_xxxx() function to cpus.c

This moves the following functions from qemu-timer.c to cpus.c to match
upstream:

cpu_get_ticks
cpu_get_clock
cpu_enable_ticks
cpu_disable_ticks
timer_save
timer_load

+ Move declarations from include/qemu/timer.h to include/sysemu/sysemu.h
+ Remove obsolete declarations from include/qemu/timer.h

Change-Id: I83c84cf4c6fb83cbda6a501969e05fbffb4afd4f
/external/qemu/cpus.c
f9077a88a0b9edca081b0810dde73d108db087a6 10-Feb-2014 David 'Digit' Turner <digit@google.com> Move main loop logic to main-loop.c

This patch moves most of the logic dealing with the internal main loop
into the main-loop.c file, to match upstream. Note however that the actual
implementation is not changed, and is still _very_ different from upstream.

However, this decouples a few more things to make upcoming refactors
significantly easier. This should not affect performance in any way.

+ Move the log rotation logic, which is specific to QEMU, to
log-rotate-android.c and include/android/log-rotate.h, it's likely
that the use of SIGUSR1 will not be maintained in the future, because
upstream uses that to signal virtual CPU threads internally instead.

Change-Id: I7bc886778fa70742c165b1dfe77637564910764e
/external/qemu/cpus.c
d79c7c53b561aeb2f34ff5cfd66c8360e7af4f36 10-Feb-2014 David 'Digit' Turner <digit@google.com> Remove dead CONFIG_IOTHREAD code.

This removes all sources that are inside #ifdef CONFIG_IOTHREAD .. #endif
blocks, since this configuration macro is never defined for the Android
emulator.

Note that upstream has definitely switched to an I/O thread implementation,
which allows using one core / virtual CPU in KVM mode. However, its
implementation is now so different that the code fragments that were
kept here were no longer useful, even for historical reasons.

Hopefully, the Android emulator will switch to a threaded implementation
in future patches, but this will only happen after some more significant
refactoring.

Change-Id: I5610c9d33a3b8e76c600fd94bab2676067054715
/external/qemu/cpus.c
81911b0de42d9e949deda2dfef6a59a1c0561bda 10-Feb-2014 David 'Digit' Turner <digit@google.com> Remove dead KQEMU support code.

CONFIG_KQEMU was never defined anyway, so remove this dead code
from the source tree.

Change-Id: Ie854f7015f1c02352b0a59a9b7ff0294fa889a6e
/external/qemu/cpus.c
086e66e13d37c79da0cd90b92f0127c869aa7b9d 04-Feb-2014 David 'Digit' Turner <digit@android.com> qemu-thread: use upstream version.

Note: some code in cpus.c still uses functions like qemu_thread_signal()
that are not implemented anymore, but this is ok as long as CONFIG_IOTHREAD
is not defined in our configurations. This will have to be address in a
future patch.

Change-Id: I74def50e3f3cfba69352072efc467cf23e025f36
/external/qemu/cpus.c
171dd0bf53f93e64b71d3edc958e15f40c96748d 04-Feb-2014 David 'Digit' Turner <digit@android.com> Remove CONFIG_TRACE support.

It was limited to ARMv5, and didn't work correctly. Moreover, it
made integrating upstream changes difficult, so remove it for now.

Change-Id: I7da7a1e00b241d452c6dff5a318ccfedc5d7a8a4
/external/qemu/cpus.c
0e0515410009c5bdd4d2d77a4a9131081573f040 23-Jan-2014 David 'Digit' Turner <digit@android.com> migration/qemu-file.h: Move QEMUFile declarations here.

Move the QEMUFile-related declarations to migration/qemu-file.h,
from hw/hw.h to get closer to upstream. Note that this also
updates the implementation slightly. The end result is still
different from upstream in certain ways, that will be handled
in future patches.

Change-Id: I11719c4449040df13d9e6f62c55d642a0dd6434d
/external/qemu/cpus.c
9b3a4b03315af9bcdf282243059e8fd1ce1c5c70 23-Jan-2014 David 'Digit' Turner <digit@android.com> qemu-common.h: Remove include of cpu.h

The "qemu-common.h" included "cpu.h" when NEED_CPU_H was defined, which
introduced some nasty circular header dependency issues that affect later
patches in this series.

This patch removes the include, and fixes all other sources to include
"cpu.h" as needed instead.

+ Move loader declarations to "hw/loader.h"
+ Move some stuff from "qemu/timer.h" to "exec/cpu-all.h"

Change-Id: Ida1a4eccd889bae450b35ee32a931273ffe1f8d8
/external/qemu/cpus.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/cpus.c
a2c14f947951612b45024095afd2210aa7368773 04-Feb-2014 David 'Digit' Turner <digit@google.com> Cleanup: Remove 100+ compiler warnings.

This is a big cleanup that removes compiler warnings by performing
the following:

- Remove unused functions or variables.
- Change pointer cast to be alias safe using unions.
- Use __attribute__((unused)) on some local variable definitions
when their usage depends on conditional defines that are not
always true when compiling the same source several times.
- Fix a couple array indexing bugs.

There are still a few warnings from the JSON lexer, libjpeg and
the TCG helpers though, but the overall compilation is much cleaner.

BUG=NONE

Change-Id: Ic4483e6402b266ecfd7bca8c92a73d8fcf392a1f
/external/qemu/cpus.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/cpus.c
1182284cd2ef1396dbbeeecd46ff90b4a225f0da 17-Dec-2013 David 'Digit' Turner <digit@android.com> cpus.h -> include/sysemu/

Change-Id: I63adb1aa61112565fa6962687536132b6800689f
/external/qemu/cpus.c
057b0f638014d1cb6764aab945b98197329f745e 15-Dec-2013 David 'Digit' Turner <digit@android.com> Move elf_ops.h -> include/hw/elf_ops.h

+ qemu-thread.h -> include/qemu/thread.h
+ qemu-os-*.h -> include/sysemu/os-*.h

Change-Id: I68a58a817e54a7f607b34b7a9b34e38a685233ea
/external/qemu/cpus.c
e1e03df288d5a44bfbffbd86588395c7cbbc27df 15-Dec-2013 David 'Digit' Turner <digit@android.com> Move more headers.

cbuffer.h, charpipe.h -> include/android/
cbuffer.c, charpipe.c -> android/
qemu_debug.h -> include/android/qemu-debug.h
block.h, block_int.h -> include/block/
elf.h -> include/
hax.h -> include/exec/
qemu-lock.h -> include/exec/spinlock.h
readline.h -> include/monitor/readline.h
qemu-common.h - include
qemu-barrier.h -> include/qemu/atomic.h
qemu-log.h -> include/qemu/log.h

Change-Id: I86b998932461caa35d347cd71b40bd6e4ec7d84d
/external/qemu/cpus.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/cpus.c
6af6765e2f3bc930d0dce21d752bea570a1b1362 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move monitor.h to include/monitor/

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

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

Change-Id: Ife43f9cd12a02aa98f408043b0cccb9fe45a9ff7
/external/qemu/cpus.c
a381ef07088ce479610129e37bfef42538f397da 18-Dec-2011 Jun Nakajima <jun.nakajima@intel.com> Changes to existing files to add HAX support

HAX (Hardware-based Accelerated eXecution) employes hardware virtualization
technology to boost performance of the Android emulator on Mac OS X or Windows
hosts.
This changeset includes the changes required to the existing files. To pass
the compilation, hax.h is added, but CONFIG_HAX is disabled so that no
real changes added.

Change-Id: Ifa5777e8788e6698747c1ec4cd91315161c2ca0b
Signed-off-by: Zhang, Xiantao <xiantao.zhang@intel.com>
Signed-off-by: Xin, Xiaohui <xiaohui.xin@intel.com>
Signed-off-by: Jiang Yunhong <yunhong.jiang@intel.com>
Signed-off-by: Nakajima, Jun <jun.nakajima@intel.com>
/external/qemu/cpus.c
23ca2ae2bf303236eb6b1e0beb126ec05c6c23bf 01-Jun-2011 David 'Digit' Turner <digit@android.com> vl-android.c: move cpu functions to cpus.c

Change-Id: Ib422f24224c2e75dd126689c67dbbb187d7c1670
/external/qemu/cpus.c