[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 00/43] tcg: support for multiple TCG contexts
From: |
Emilio G. Cota |
Subject: |
[Qemu-devel] [PATCH v4 00/43] tcg: support for multiple TCG contexts |
Date: |
Fri, 21 Jul 2017 01:59:18 -0400 |
v3:
https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg06353.html
To ease review/testing, you can pull this series from:
https://github.com/cota/qemu/tree/multi-tcg-v4
[ head commit: 1d50a9f24e ]
In this iteration I'm sending only the few patches that contain changes
from v3; they are highlighted in the change list below.
Changes from v3:
- Add R-b tags
- Rebase on top of current master (25d0233c1)
- [PATCH 11] tb->cflags hashing: add CF_COUNT_MASK to CF_HASH_MASK
- [PATCH 20] tcg_ctx.cf_parallel: convert to tcg_ctx.tb_cflags (Richard:
kept your R-b)
- [PATCH 35] TCG optimizer: allocate using tcg_malloc (Richard: dropped
your R-b)
- [PATCH 42] TCG regions:
- expand first and last regions to fully use the buffer
- use tcg_region_bounds as suggested by Richard
- substitute regions.n_full with region.agg_full_size since now
not all regions are of the same size
- add region.stride and .start_aligned fields
- Only use qemu_real_host_page_size once in the file; guard size
is derived as 'region.stride - region.size'
- [PATCH 43] TCG __thread: (Richard: kept your R-b)
- do not assume CONFIG_SOFTMMU == !CONFIG_USER_ONLY
- use atomic_read/set on tcg_ctxs[] as well
- Remove unnecessary clearing of tcg_ctx->prof in tcg_register_thread()
To be done after this series:
- Get rid of tb_lock, or at least push it down so that we take advantage of
multiple TCG contexts in MTTCG. (I'm doing this in my testing, but doing
it well will require another patch series.)
Improvements that were suggested during this series' development:
- Perhaps look at arranging fields such that all the fields that are
"shared" between the contexts are up front, and use the qemu standard
'memcpy(new, old, offsetof(TCGContext, end_common_fields));' trick, and
zero the rest.
- Order tb->[*] comparisons by likelihood of mismatch.
- Get rid of parallel_cpus from from cpu_exec_step_atomic -- I'm not sure
whether just removing it is safe, since we call curr_cflags from several
places.
- Add CF_NOCHAIN flag, that tcg-op can check via tcg_ctx->tb_cflags.
- Expand CF_HASH_MASK to compare all bits in cflags. Would require cleaning
CF_IGNORE_ICOUNT up.
- Perhaps parse -accel=tcg command-line arguments before TCG is initialized,
so that those arguments can be used during TCG initialization.
Thanks,
Emilio
- [Qemu-devel] [PATCH v4 00/43] tcg: support for multiple TCG contexts,
Emilio G. Cota <=
- [Qemu-devel] [PATCH v4 20/43] tcg: check CF_PARALLEL instead of parallel_cpus, Emilio G. Cota, 2017/07/21
- [Qemu-devel] [PATCH v4 43/43] tcg: enable multiple TCG contexts in softmmu, Emilio G. Cota, 2017/07/21
- [Qemu-devel] [PATCH v4 11/43] tcg: define CF_PARALLEL and use it for TB hashing along with CF_COUNT_MASK, Emilio G. Cota, 2017/07/21
- [Qemu-devel] [PATCH v4 35/43] tcg: allocate optimizer temps with tcg_malloc, Emilio G. Cota, 2017/07/21
- [Qemu-devel] [PATCH v4 42/43] tcg: introduce regions to split code_gen_buffer, Emilio G. Cota, 2017/07/21