From: Sergey Fedorov <serge.f...@gmail.com> Hi,
This is a v4 for the series [1]. There's only a small change to keep tb_flush() statistic and debugging output sane. I also picked up "Reviewed-by" tags. This series is available at a public git repository: https://github.com/sergefdrv/qemu.git safe-cpu-work-v4 Summary of changes in v4: - keep tb_flush() statistics and debugging output sane 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/426554 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 +++++++++++++++++++++++++++++++++++++++++++++ cpu-exec.c | 14 +---- 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 | 24 +++++++-- 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 | 17 +++--- 21 files changed, 391 insertions(+), 269 deletions(-) -- 2.9.1