Hi Alex, On Wed, Feb 22, 2017 at 12:13 PM, Alex Bennée <alex.ben...@linaro.org> wrote: > From: KONRAD Frederic <fred.kon...@greensocs.com> > > We know there will be cases where MTTCG won't work until additional work > is done in the front/back ends to support. It will however be useful to > be able to turn it on. > > As a result MTTCG will default to off unless the combination is > supported. However the user can turn it on for the sake of testing. > > Signed-off-by: KONRAD Frederic <fred.kon...@greensocs.com> > [AJB: move to -accel tcg,thread=multi|single, defaults] > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > Reviewed-by: Richard Henderson <r...@twiddle.net> > --- > v1: > - merge with add mttcg option. > - update commit message > v2: > - machine_init->opts_init > v3: > - moved from -tcg to -accel tcg,thread=single|multi > - fix checkpatch warnings > v4: > - make mttcg_enabled extern, qemu_tcg_mttcg_enabled() now just macro > - qemu_tcg_configure now propagates Error instead of exiting > - better error checking of thread=foo > - use CONFIG flags for default_mttcg_enabled() > - disable mttcg with icount, error if both forced on > v7 > - explicitly disable MTTCG for TCG_OVERSIZED_GUEST > - use check_tcg_memory_orders_compatible() instead of CONFIG_MTTCG_HOST > - change CONFIG_MTTCG_TARGET to TARGET_SUPPORTS_MTTCG > v8 > - fix missing include tcg.h > - change mismatched MOs to a warning instead of error > v10 > - TCG_DEFAULT_MO -> TCG_GUEST_DEFAULT_MO > v11 > - tweak warning message > --- > cpus.c | 73 > +++++++++++++++++++++++++++++++++++++++++++++++++++ > include/qom/cpu.h | 9 +++++++ > include/sysemu/cpus.h | 2 ++ > qemu-options.hx | 20 ++++++++++++++ > tcg/tcg.h | 9 +++++++ > vl.c | 49 +++++++++++++++++++++++++++++++++- > 6 files changed, 161 insertions(+), 1 deletion(-) > > diff --git a/cpus.c b/cpus.c > index 0bcb5b50b6..c296ec715f 100644 > --- a/cpus.c > +++ b/cpus.c <...> > +void qemu_tcg_configure(QemuOpts *opts, Error **errp) > +{ > + const char *t = qemu_opt_get(opts, "thread"); > + if (t) { > + if (strcmp(t, "multi") == 0) { > + if (TCG_OVERSIZED_GUEST) { > + error_setg(errp, "No MTTCG when guest word size > hosts"); > + } else { > + if (!check_tcg_memory_orders_compatible()) { > + error_report("Guest expects a stronger memory ordering > than" > + "the host provides"); > + error_printf("This may cause strange/hard to debug > errors"); > + }
This prints it as: Guest expects a stronger memory ordering thanthe host provides Please add a space between 'than' and 'the'. Also why are you using error_report() for the first line and error_printf() for the second? Thanks, -- Pranith