diff options
| author | Pranith Kumar | 2017-02-23 19:29:15 +0100 |
|---|---|---|
| committer | Alex Bennée | 2017-02-24 11:32:45 +0100 |
| commit | 08e73c48b053566bfe0c994f154f73991cd0ff0e (patch) | |
| tree | 5a2a033b6acfc8d41d65424a695943c6f9480337 /scripts/switch-timer-api | |
| parent | tcg: enable thread-per-vCPU (diff) | |
| download | qemu-08e73c48b053566bfe0c994f154f73991cd0ff0e.tar.gz qemu-08e73c48b053566bfe0c994f154f73991cd0ff0e.tar.xz qemu-08e73c48b053566bfe0c994f154f73991cd0ff0e.zip | |
tcg: handle EXCP_ATOMIC exception for system emulation
The patch enables handling atomic code in the guest. This should be
preferably done in cpu_handle_exception(), but the current assumptions
regarding when we can execute atomic sections cause a deadlock.
The current mechanism discards the flags which were set in atomic
execution. We ensure they are properly saved by calling the
cc->cpu_exec_enter/leave() functions around the loop.
As we are running cpu_exec_step_atomic() from the outermost loop we
need to avoid an abort() when single stepping over atomic code since
debug exception longjmp will point to the the setlongjmp in
cpu_exec(). We do this by setting a new jmp_env so that it jumps back
here on an exception.
Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
[AJB: tweak title, merge with new patches, add mmap_lock]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
CC: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'scripts/switch-timer-api')
0 files changed, 0 insertions, 0 deletions
