[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t
From: |
Emilio G. Cota |
Subject: |
Re: [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t |
Date: |
Sat, 15 Jul 2017 21:43:59 -0400 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Wed, Jul 12, 2017 at 13:06:23 -1000, Richard Henderson wrote:
> You've got a problem here in that you're not including CF_COUNT_MASK in the
> hash and you dropped the flush when changing to parallel_cpus = true. That
> means you could find an old TB with CF_COUNT > 1.
>
> Not required for this patch set, but what I'd like to see eventually is
>
> (1) cpu_exec_step merged into cpu_exec_step_atomic for clarity.
> (2) callers of tb_gen_code add in CF_PARALLEL as needed; do not
> pick it up from parallel_cpus within tb_gen_code.
> (3) target/*/translate.c uses CF_PARALLEL instead of parallel_cpus.
> (4) cpu_exec_step_atomic does the tb lookup and code gen outside
> of the start_exclusive/end_exclusive lock.
I have implemented these for v2, which is almost ready to go. However,
just noticed that tcg-op.c also checks parallel_cpus to decide whether
to emit a real atomic or a non-atomic op. Should we export the two
flavours of these ops to targets, since targets are the ones that can
check CF_PARALLEL? Or perhaps set a bit in the now-per-thread *tcg_ctx?
You can see the current v2 here:
https://github.com/cota/qemu/tree/multi-tcg-v2-2017-07-15
Thanks,
Emilio
- Re: [Qemu-devel] [PATCH 04/22] tcg: fix corruption of code_time profiling counter upon tb_flush, (continued)
- [Qemu-devel] [PATCH 14/22] tcg: take .helpers out of TCGContext, Emilio G. Cota, 2017/07/09
- [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t, Emilio G. Cota, 2017/07/09
- Re: [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t, Richard Henderson, 2017/07/09
- Re: [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t, Emilio G. Cota, 2017/07/10
- Re: [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t, Richard Henderson, 2017/07/11
- Re: [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t, Emilio G. Cota, 2017/07/12
- Re: [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t, Richard Henderson, 2017/07/12
- Re: [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t,
Emilio G. Cota <=
- Re: [Qemu-devel] [PATCH 09/22] exec-all: shrink tb->invalid to uint8_t, Richard Henderson, 2017/07/16
[Qemu-devel] [PATCH 12/22] translate-all: report correct avg host TB size, Emilio G. Cota, 2017/07/09
[Qemu-devel] [PATCH 16/22] tcg: keep a list of TCGContext's, Emilio G. Cota, 2017/07/09
[Qemu-devel] [PATCH 11/22] translate-all: use a binary search tree to track TBs in TBContext, Emilio G. Cota, 2017/07/09