On Thu, Sep 12, 2013 at 11:02:17AM +0200, Stefan Hajnoczi wrote: > v4: > * Rebased & retested for easy review and merge > * No code changes > > v3: > * Squashed Paolo's fixes and added his patch to avoid locking in > timer_pending() > > v2: > * Rebased onto qemu.git/master following the merge of Alex's AioContext > timers > > The purpose of these patches is to eventually allow device models to set and > cancel timers without holding the global mutex. When the device model runs in > a vcpu thread and the iothread processes timers, the > QEMUTimerList->active_timers must be protected from concurrent access. > > Patch 1 is a clean-up. > > Patch 2 is the entire change needed to protect ->active_timers. > > Patch 3 makes timer_pending() run without a lock. > > Paolo Bonzini (1): > qemu-timer: do not take the lock in timer_pending > > Stefan Hajnoczi (2): > qemu-timer: drop outdated signal safety comments > qemu-timer: make qemu_timer_mod_ns() and qemu_timer_del() thread-safe > > include/qemu/timer.h | 17 ++++++++++ > qemu-timer.c | 92 > ++++++++++++++++++++++++++++++++++++---------------- > 2 files changed, 81 insertions(+), 28 deletions(-)
Applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan