[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 00/12] cpu-exec: Safe work in quiescent state
From: |
Sergey Fedorov |
Subject: |
[Qemu-devel] [PATCH v3 00/12] cpu-exec: Safe work in quiescent state |
Date: |
Thu, 14 Jul 2016 00:00:10 +0300 |
From: Sergey Fedorov <address@hidden>
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
- [Qemu-devel] [PATCH v3 00/12] cpu-exec: Safe work in quiescent state,
Sergey Fedorov <=
- [Qemu-devel] [PATCH v3 01/12] atomic: introduce atomic_dec_fetch., Sergey Fedorov, 2016/07/13
- [Qemu-devel] [PATCH v3 05/12] cpus: Rename flush_queued_work(), Sergey Fedorov, 2016/07/13
- [Qemu-devel] [PATCH v3 04/12] cpus: Wrap mutex used to protect CPU work, Sergey Fedorov, 2016/07/13
- [Qemu-devel] [PATCH v3 03/12] cpus: Move common code out of {async_, }run_on_cpu(), Sergey Fedorov, 2016/07/13
- [Qemu-devel] [PATCH v3 06/12] linux-user: Use QemuMutex and QemuCond, Sergey Fedorov, 2016/07/13
- [Qemu-devel] [PATCH v3 08/12] linux-user: Add qemu_cpu_is_self() and qemu_cpu_kick(), Sergey Fedorov, 2016/07/13
- [Qemu-devel] [PATCH v3 02/12] cpus: pass CPUState to run_on_cpu helpers, Sergey Fedorov, 2016/07/13
- [Qemu-devel] [PATCH v3 09/12] linux-user: Support CPU work queue, Sergey Fedorov, 2016/07/13
- [Qemu-devel] [PATCH v3 10/12] bsd-user: Support CPU work queue, Sergey Fedorov, 2016/07/13
- [Qemu-devel] [PATCH v3 07/12] linux-user: Rework exclusive operation mechanism, Sergey Fedorov, 2016/07/13