Pranith Kumar <bobby.pr...@gmail.com> writes: > 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'.
Will do. > Also why are you using > error_report() for the first line and error_printf() for the second? There is only one error to report, quoth HACKING: "Use error_printf() & friends to print additional information." -- Alex Bennée