[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 02bed6: user-exec: handle synchronous signals
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] 02bed6: user-exec: handle synchronous signals from QEMU gr... |
Date: |
Tue, 28 Mar 2017 05:15:10 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 02bed6bd5f45819f1557a4b04db300a72383ecdb
https://github.com/qemu/qemu/commit/02bed6bd5f45819f1557a4b04db300a72383ecdb
Author: Alex Bennée <address@hidden>
Date: 2017-03-28 (Tue, 28 Mar 2017)
Changed paths:
M user-exec.c
Log Message:
-----------
user-exec: handle synchronous signals from QEMU gracefully
When "tcg: enable thread-per-vCPU" (commit 3725794) was merged the
lifetime of current_cpu was changed. Previously a broken linux-user
call might abort() which can eventually escalate into a SIGSEGV which
would then crash qemu as it attempted to deref a NULL current_cpu.
After commit 3725794 it would attempt to fixup state and re-start the
run-loop and much hilarity (i.e. a looping lockup) would ensue from
jumping into a stale jmp_env.
As we can actually tell if we are in the run-loop from looking at the
cpu->running flag we should catch this badness first and abort()
cleanly rather than try to soldier on. There is a theoretical race
between the flag being set and sigsetjmp refreshing the jump buffer
but we can try really hard to not introduce crashes into that code.
[LV: setgroups03 fails on powerpc LTP]
Reported-by: Laurent Vivier <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Commit: 95992b674c43339d0b313dd79fa8cc45ba22eab8
https://github.com/qemu/qemu/commit/95992b674c43339d0b313dd79fa8cc45ba22eab8
Author: Alex Bennée <address@hidden>
Date: 2017-03-28 (Tue, 28 Mar 2017)
Changed paths:
M bsd-user/mmap.c
M bsd-user/qemu.h
Log Message:
-----------
bsd-user: align use of mmap_lock to that of linux-user
The introduction of stricter mmap_lock checking in translate-all broke
the BSD user build. The working mmap_lock functions were hidden behind
CONFIG_USE_NPTL which is never defined. This patch brings them inline
with linux-user.
Despite the disapearence of the comment "We aren't threadsafe to start
with..." this doesn't make bsd-user so. It will still need the rest of
the fixes that have been done in linux-user ported over.
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Commit: 85390939190e4b7eeba57765e344947c328cd166
https://github.com/qemu/qemu/commit/85390939190e4b7eeba57765e344947c328cd166
Author: Alex Bennée <address@hidden>
Date: 2017-03-28 (Tue, 28 Mar 2017)
Changed paths:
M cpu-exec-common.c
M ui/console.c
Log Message:
-----------
ui/console: ensure do_safe_dpy_refresh holds BQL
I missed the fact that when an exclusive work item runs it drops the
BQL to ensure all no vCPUs are stuck waiting for it, hence causing a
deadlock. However the actual helper needs to take the BQL especially
as we'll be messing with device emulation bits during the update which
all assume BQL is held.
We make a minor cpu_reloading_memory_map which must try and unlock the
RCU if we are actually outside the running context.
Reported-by: Laurent Desnogues <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Gerd Hoffmann <address@hidden>
Commit: 0096109052c5b83ee6894c88acedfd59b76d0113
https://github.com/qemu/qemu/commit/0096109052c5b83ee6894c88acedfd59b76d0113
Author: Alex Bennée <address@hidden>
Date: 2017-03-28 (Tue, 28 Mar 2017)
Changed paths:
M ui/console.c
Log Message:
-----------
ui/console: use exclusive mechanism directly
The previous commit (8bb93c6f99) using async_safe_run_on_cpu() doesn't
work on graphics sub-system which restrict which threads can do GUI
updates. Rather the special casing MacOS we just directly call the
helper and move all the exclusive handling into do_dafe_dpy_refresh().
The unfortunate bouncing of the BQL is to ensure there is no deadlock
as vCPUs waiting on the BQL are kicked into their quiescent state.
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Gerd Hoffmann <address@hidden>
Commit: 8cfef89271e27e4a7cd047835dc8161fad50bc5a
https://github.com/qemu/qemu/commit/8cfef89271e27e4a7cd047835dc8161fad50bc5a
Author: Pranith Kumar <address@hidden>
Date: 2017-03-28 (Tue, 28 Mar 2017)
Changed paths:
M cpus.c
Log Message:
-----------
tcg: Add a new line after incompatibility warning
Signed-off-by: Pranith Kumar <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Commit: 5b12c163c830081cbb78e2de3b42c5fe1b73e74e
https://github.com/qemu/qemu/commit/5b12c163c830081cbb78e2de3b42c5fe1b73e74e
Author: Alex Bennée <address@hidden>
Date: 2017-03-28 (Tue, 28 Mar 2017)
Changed paths:
M replay/replay.c
Log Message:
-----------
replay/replay.c: bump REPLAY_VERSION
A previous commit (3d4d16f4) added support for audio record/playback.
However this breaks the logfile ABI due to the re-ordering of the
ReplayEvents enum. The REPLAY_VERSION check is meant to prevent you
from using old log files in newer QEMUs but this is currently broken.
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Pavel Dovgalyuk <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Commit: 0491c221547a38b58e41fade9953cd1cf015288b
https://github.com/qemu/qemu/commit/0491c221547a38b58e41fade9953cd1cf015288b
Author: Peter Maydell <address@hidden>
Date: 2017-03-28 (Tue, 28 Mar 2017)
Changed paths:
M bsd-user/mmap.c
M bsd-user/qemu.h
M cpu-exec-common.c
M cpus.c
M replay/replay.c
M ui/console.c
M user-exec.c
Log Message:
-----------
Merge remote-tracking branch
'remotes/stsquad/tags/pull-mttcg-fixups-for-rc2-280317-1' into staging
MTTCG regression fixes for rc2
# gpg: Signature made Tue 28 Mar 2017 10:54:38 BST
# gpg: using RSA key 0xFBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) <address@hidden>"
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44
* remotes/stsquad/tags/pull-mttcg-fixups-for-rc2-280317-1:
replay/replay.c: bump REPLAY_VERSION
tcg: Add a new line after incompatibility warning
ui/console: use exclusive mechanism directly
ui/console: ensure do_safe_dpy_refresh holds BQL
bsd-user: align use of mmap_lock to that of linux-user
user-exec: handle synchronous signals from QEMU gracefully
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/142b9ca51d72...0491c221547a
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 02bed6: user-exec: handle synchronous signals from QEMU gr...,
GitHub <=