From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1apyHq-0007Kb-Bb for qemu-devel@nongnu.org; Tue, 12 Apr 2016 09:23:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1apyHm-0004ak-4h for qemu-devel@nongnu.org; Tue, 12 Apr 2016 09:23:22 -0400 Received: from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241]:33449) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1apyHl-0004aW-St for qemu-devel@nongnu.org; Tue, 12 Apr 2016 09:23:18 -0400 Received: by mail-lf0-x241.google.com with SMTP id p64so2583366lfg.0 for ; Tue, 12 Apr 2016 06:23:17 -0700 (PDT) References: <1459870344-16773-1-git-send-email-alex.bennee@linaro.org> <1459870344-16773-9-git-send-email-alex.bennee@linaro.org> From: Sergey Fedorov Message-ID: <570CF6BC.2030409@gmail.com> Date: Tue, 12 Apr 2016 16:23:08 +0300 MIME-Version: 1.0 In-Reply-To: <1459870344-16773-9-git-send-email-alex.bennee@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [RFC v2 08/11] tcg: add options for enabling MTTCG List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?Q?Alex_Benn=c3=a9e?= , mttcg@listserver.greensocs.com, fred.konrad@greensocs.com, a.rigo@virtualopensystems.com, cota@braap.org Cc: qemu-devel@nongnu.org, mark.burton@greensocs.com, pbonzini@redhat.com, jan.kiszka@siemens.com, rth@twiddle.net, peter.maydell@linaro.org, claudio.fontana@huawei.com, Peter Crosthwaite , =?UTF-8?Q?Andreas_F=c3=a4rber?= On 05/04/16 18:32, Alex Bennée wrote: > diff --git a/cpus.c b/cpus.c > index 46732a5..8d27fb0 100644 > --- a/cpus.c > +++ b/cpus.c (snip) > @@ -146,6 +147,48 @@ typedef struct TimersState { > } TimersState; > > static TimersState timers_state; > +static bool mttcg_enabled; > + > +static QemuOptsList qemu_tcg_opts = { > + .name = "tcg", > + .head = QTAILQ_HEAD_INITIALIZER(qemu_tcg_opts.head), > + .desc = { > + { > + .name = "mttcg", > + .type = QEMU_OPT_BOOL, > + .help = "Enable/disable multi-threaded TCG", > + }, > + { /* end of list */ } > + }, > +}; > + > +static void tcg_register_config(void) > +{ > + qemu_add_opts(&qemu_tcg_opts); > +} > + > +opts_init(tcg_register_config); > + > +static bool default_mttcg_enabled(void) > +{ > + /* > + * TODO: Check if we have a chance to have MTTCG working on this guest/host. > + * Basically is the atomic instruction implemented? Is there any > + * memory ordering issue? > + */ I think this could be decided in configure/makefiles. > + return false; > +} > + > +void qemu_tcg_configure(QemuOpts *opts) > +{ > + mttcg_enabled = qemu_opt_get_bool(opts, "mttcg", default_mttcg_enabled()); > +} > + > +bool qemu_tcg_mttcg_enabled(void) > +{ > + return mttcg_enabled; > +} > + > > int64_t cpu_get_icount_raw(void) > { > diff --git a/include/qom/cpu.h b/include/qom/cpu.h > index 13eeaae..5e3826c 100644 > --- a/include/qom/cpu.h > +++ b/include/qom/cpu.h > @@ -369,6 +369,20 @@ extern struct CPUTailQ cpus; > extern __thread CPUState *current_cpu; > > /** > + * qemu_tcg_enable_mttcg: > + * Enable the MultiThread TCG support. > + */ > +void qemu_tcg_enable_mttcg(void); Seems to be an orphaned declaration. Kind regards, Sergey