qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC v2] translate-all: protect code_gen_buffer with RC


From: Emilio G. Cota
Subject: Re: [Qemu-devel] [RFC v2] translate-all: protect code_gen_buffer with RCU
Date: Mon, 25 Apr 2016 11:25:28 -0400
User-agent: Mutt/1.5.23 (2014-03-12)

On Mon, Apr 25, 2016 at 16:19:59 +0100, Alex Bennée wrote:
> 
> Emilio G. Cota <address@hidden> writes:
> 
> > [ Applies on top of bennee/mttcg/enable-mttcg-for-armv7-v1 after
> > reverting "translate-all: introduces tb_flush_safe". A trivial
> > conflict must be solved after applying. ]
> >
> > This is a first attempt at making tb_flush not have to stop all CPUs.
> > There are issues as pointed out below, but this could be a good start.
> >
> > Context:
> >   https://lists.gnu.org/archive/html/qemu-devel/2016-03/msg04658.html
> >   https://lists.gnu.org/archive/html/qemu-devel/2016-03/msg06942.html
> >
> > Changes from v1:
> > - When a static buffer is used, split it in two instead of using
> >   a second buffer.
> >
> > Known issues:
> > - Fails Alex' unit test with low enough -tb-size, see
> >   https://lists.gnu.org/archive/html/qemu-devel/2016-04/msg03465.html
> >   Seems to work in MTTCG, although I've only tested with tb_lock
> >   always being taken in tb_find_fast.
> 
> With --enable-debug-tcg I get it failing pretty quickly:
> 
> #4  0x00005555556d332a in tcg_global_alloc (s=0x555556007ba0 <tcg_ctx>)
>  at /home/alex/lsrc/qemu/qemu.git/tcg/tcg.c:463
>  463         tcg_debug_assert(s->nb_globals == s->nb_temps);
>  (gdb) p s->nb_globals
>  $1 = 24
>  (gdb) p s->nb_temps
>  $2 = 31
> Seems odd though, the other threads are all waiting on the tb_lock.

It must be the tcg_prologue_init call, as Richard pointed out.
I'm on it, will report back.

Thanks,

                E.



reply via email to

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