From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58048) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNRGm-000787-23 for qemu-devel@nongnu.org; Wed, 13 Jul 2016 17:00:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNRGh-0001Cf-TB for qemu-devel@nongnu.org; Wed, 13 Jul 2016 17:00:35 -0400 Received: from mail-lf0-x229.google.com ([2a00:1450:4010:c07::229]:33268) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNRGh-0001C0-LW for qemu-devel@nongnu.org; Wed, 13 Jul 2016 17:00:31 -0400 Received: by mail-lf0-x229.google.com with SMTP id b199so48352237lfe.0 for ; Wed, 13 Jul 2016 14:00:29 -0700 (PDT) From: Sergey Fedorov Date: Thu, 14 Jul 2016 00:00:10 +0300 Message-Id: <1468443622-17368-1-git-send-email-sergey.fedorov@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH v3 00/12] cpu-exec: Safe work in quiescent state List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: patches@linaro.org, serge.fdrv@gmail.com, MTTCG Devel , =?UTF-8?B?S09OUkFEIEZyw6lkw6lyaWM=?= , Alvise Rigo , "Emilio G. Cota" , =?UTF-8?Q?Alex_Benn=c3=a9e?= , Paolo Bonzini , Richard Henderson , Peter Maydell From: Sergey Fedorov Hi, This is a v3 for the RFC series [1]. This is not RFC anymore because bsd-user is supported now. However I wasn't able to even compile-test bsd-user so some help on this would be really appreciated. This series is available at a public git repository: https://github.com/sergefdrv/qemu.git safe-cpu-work-v3 Summary of changes in v3: - bsd-user support added - 'tb_flushed' removed Summary of changes in v2: - atomic_dec_fetch() used to decrement 'safe_work_pending' - more work to use/fix passing CPUState to run_on_cpu helpers - instead of wrapping conditional variables access, use QemuMutex and QemuCond in linux-user and just wrap getting of the relevant mutex. - document new public API - Rename 'tcg_pending_cpus' to 'tcg_pending_threads' Kind regards, Sergey [1] http://thread.gmane.org/gmane.comp.emulators.qemu/425242 Alex Bennée (2): atomic: introduce atomic_dec_fetch. cpus: pass CPUState to run_on_cpu helpers Sergey Fedorov (10): cpus: Move common code out of {async_,}run_on_cpu() cpus: Wrap mutex used to protect CPU work cpus: Rename flush_queued_work() linux-user: Use QemuMutex and QemuCond linux-user: Rework exclusive operation mechanism linux-user: Add qemu_cpu_is_self() and qemu_cpu_kick() linux-user: Support CPU work queue bsd-user: Support CPU work queue cpu-exec-common: Introduce async_safe_run_on_cpu() tcg: Make tb_flush() thread safe bsd-user/main.c | 16 ++++++ cpu-exec-common.c | 132 +++++++++++++++++++++++++++++++++++++++++++++ cpus.c | 106 +++++++----------------------------- hw/i386/kvm/apic.c | 3 +- hw/i386/kvmvapic.c | 6 +-- hw/ppc/ppce500_spin.c | 31 ++++------- hw/ppc/spapr.c | 6 +-- hw/ppc/spapr_hcall.c | 17 +++--- include/exec/exec-all.h | 31 +++++++++++ include/qemu/atomic.h | 4 ++ include/qom/cpu.h | 22 ++++++-- kvm-all.c | 21 +++----- linux-user/main.c | 94 ++++++++++++++++++++------------ target-i386/helper.c | 19 +++---- target-i386/kvm.c | 6 +-- target-s390x/cpu.c | 4 +- target-s390x/cpu.h | 7 +-- target-s390x/kvm.c | 98 ++++++++++++++++----------------- target-s390x/misc_helper.c | 4 +- translate-all.c | 13 +++-- 20 files changed, 387 insertions(+), 253 deletions(-) -- 1.9.1