qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 00/10] MTTCG: Slow-path for atomic insns


From: Alex Bennée
Subject: Re: [Qemu-devel] [RFC 00/10] MTTCG: Slow-path for atomic insns
Date: Fri, 10 Jun 2016 16:21:10 +0100
User-agent: mu4e 0.9.17; emacs 25.0.94.5

Alvise Rigo <address@hidden> 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:
> address@hidden: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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]