Paolo Bonzini <pbonz...@redhat.com> writes: > Changes from v7
Looks good to my testing: Tested-by: Alex Bennée <alex.ben...@linaro.org> > > patch 1: one more instance to change > > patch 4: rename cpu_list_mutex to cpu_list_lock [Emilio] > avoid problems from spurious wakeups [me] > > patch 6: rename qemu_cpu_list_mutex to qemu_cpu_list_lock (ripples > to other patches afterwards) [Emilio] > > patch 13: adjust comments on top of start_exclusive/end_exclusive [Emilio] > > patch 14: do not set wi->exclusive [Emilio] > > patch 16: use atomics for pending_cpus and cpu->running > (not for cpu->has_waiter) [Emilio] > > > Alex Bennée (1): > cpus: pass CPUState to run_on_cpu helpers > > Paolo Bonzini (9): > cpus-common: move CPU list management to common code > cpus-common: fix uninitialized variable use in run_on_cpu > cpus-common: move exclusive work infrastructure from linux-user > docs: include formal model for TCG exclusive sections > cpus-common: always defer async_run_on_cpu work items > cpus-common: remove redundant call to exclusive_idle() > cpus-common: simplify locking for start_exclusive/end_exclusive > cpus-common: Introduce async_safe_run_on_cpu() > cpus-common: lock-free fast path for cpu_exec_start/end > > Sergey Fedorov (6): > cpus: Move common code out of {async_, }run_on_cpu() > cpus: Rename flush_queued_work() > linux-user: Use QemuMutex and QemuCond > linux-user: Add qemu_cpu_is_self() and qemu_cpu_kick() > cpus-common: move CPU work item management to common code > tcg: Make tb_flush() thread safe > > Makefile.objs | 2 +- > bsd-user/main.c | 33 ++--- > cpu-exec.c | 12 +- > cpus-common.c | 352 > +++++++++++++++++++++++++++++++++++++++++++++ > cpus.c | 99 +------------ > docs/tcg-exclusive.promela | 224 +++++++++++++++++++++++++++++ > exec.c | 37 +---- > hw/i386/kvm/apic.c | 5 +- > hw/i386/kvmvapic.c | 6 +- > hw/ppc/ppce500_spin.c | 31 ++-- > hw/ppc/spapr.c | 6 +- > hw/ppc/spapr_hcall.c | 17 +-- > include/exec/cpu-common.h | 5 + > include/exec/exec-all.h | 11 -- > include/exec/tb-context.h | 2 +- > include/qom/cpu.h | 102 +++++++++++-- > kvm-all.c | 21 +-- > linux-user/main.c | 130 +++++------------ > 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 | 38 +++-- > vl.c | 1 + > 26 files changed, 856 insertions(+), 416 deletions(-) > create mode 100644 cpus-common.c > create mode 100644 docs/tcg-exclusive.promela -- Alex Bennée