From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39038) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VK2nQ-0006Fy-BA for qemu-devel@nongnu.org; Thu, 12 Sep 2013 05:02:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VK2nK-0008O9-BJ for qemu-devel@nongnu.org; Thu, 12 Sep 2013 05:02:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:28862) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VK2nK-0008Nq-2f for qemu-devel@nongnu.org; Thu, 12 Sep 2013 05:02:34 -0400 From: Stefan Hajnoczi Date: Thu, 12 Sep 2013 11:02:17 +0200 Message-Id: <1378976540-10812-1-git-send-email-stefanha@redhat.com> Subject: [Qemu-devel] [PATCH v4 0/3] qemu-timer: make qemu_timer_mod_ns() and qemu_timer_del() thread-safe List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Ping Fan Liu , Stefan Hajnoczi , alex@alex.org.uk, Anthony Liguori 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(-) -- 1.8.3.1