Alvise Rigo <a.r...@virtualopensystems.com> writes: > Hi, > > This series ports the latest iteration of the LL/SC work on top of the > latest MTTCG reference branch posted recently by Alex. > > These patches apply on top of the following series: > > - [RFC v1 00/12] Enable MTTCG for 32 bit arm on x86 > https://github.com/stsquad/qemu/tree/mttcg/enable-mttcg-for-armv7-v1 > - [RFC v8 00/14] Slow-path for atomic instruction translation > https://git.virtualopensystems.com/dev/qemu-mt/tree/\ > slowpath-for-atomic-v8-no-mttcg - only minor changes have been necessary > - Few recent patches from Emilio regarding the spinlock implementation > > Overall, these patches allow the LL/SC infrastructure to work in > multi-threaded > mode (patches 01-02-04) and make TLB flushes to other VCPUs safe. > > Patch 03 introduces a new API to submit a work item to a VCPU and wait for its > completion. This API is used to query TLB flushes that result from the > emulation of some ARM instructions. Patches 07, 08 and 09 modify the current > tlb_flush_* functions to use the new API. Patch 10 fixes a rare hang that I > was experiencing with this branch. > > The whole work can be fetched from the following repository: > g...@git.virtualopensystems.com:dev/qemu-mt.git > at the branch "slowpath-for-atomic-v8-mttcg".
Hmm this branch has build failures for linux-user and other architectures. Is this the latest one? > > Alvise Rigo (10): > exec: Introduce tcg_exclusive_{lock,unlock}() > softmmu_llsc_template.h: Move to multi-threading > cpus: Introduce async_wait_run_on_cpu() > cputlb: Introduce tlb_flush_other() > target-arm: End TB after ldrex instruction > cputlb: Add tlb_tables_flush_bitmap() > cputlb: Query tlb_flush_by_mmuidx > cputlb: Query tlb_flush_page_by_mmuidx > cputlb: Query tlb_flush_page_all > cpus: Do not sleep if some work item is pending > > cpus.c | 48 ++++++++++- > cputlb.c | 202 > ++++++++++++++++++++++++++++++++++----------- > exec.c | 18 ++++ > include/exec/exec-all.h | 13 +-- > include/qom/cpu.h | 36 ++++++++ > softmmu_llsc_template.h | 13 ++- > softmmu_template.h | 6 ++ > target-arm/helper.c | 79 +++++++++--------- > target-arm/op_helper.c | 6 ++ > target-arm/translate-a64.c | 2 + > target-arm/translate.c | 2 + > 11 files changed, 327 insertions(+), 98 deletions(-) -- Alex Bennée