[Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code

Yang Zhong posted 15 patches 8 years, 7 months ago
There is a newer version of this series
[Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code
Posted by Yang Zhong 8 years, 7 months ago
Need to disable the tcg related code in the vl.c if the
disable-tcg option is added into ./configure command.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 cpus.c |  3 ++-
 vl.c   | 12 ++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/cpus.c b/cpus.c
index 14bb8d5..a86ea10 100644
--- a/cpus.c
+++ b/cpus.c
@@ -170,7 +170,7 @@ bool mttcg_enabled;
  * implicit memory order requirements which would likely slow things
  * down a lot.
  */
-
+#ifdef CONFIG_TCG
 static bool check_tcg_memory_orders_compatible(void)
 {
 #if defined(TCG_GUEST_DEFAULT_MO) && defined(TCG_TARGET_DEFAULT_MO)
@@ -223,6 +223,7 @@ void qemu_tcg_configure(QemuOpts *opts, Error **errp)
         mttcg_enabled = default_mttcg_enabled();
     }
 }
+#endif
 
 /* The current number of executed instructions is based on what we
  * originally budgeted minus the current state of the decrementing
diff --git a/vl.c b/vl.c
index 59fea15..a01faf9 100644
--- a/vl.c
+++ b/vl.c
@@ -3738,8 +3738,13 @@ int main(int argc, char **argv, char **envp)
                 }
                 break;
              case QEMU_OPTION_no_kvm:
+#ifdef CONFIG_TCG
                 olist = qemu_find_opts("machine");
                 qemu_opts_parse_noisily(olist, "accel=tcg", false);
+#else
+                error_report("TCG is disabled");
+                exit(1);
+#endif
                 break;
             case QEMU_OPTION_no_kvm_pit: {
                 error_report("warning: ignoring deprecated option");
@@ -3915,10 +3920,15 @@ int main(int argc, char **argv, char **envp)
                 configure_rtc(opts);
                 break;
             case QEMU_OPTION_tb_size:
+#ifdef CONFIG_TCG
                 tcg_tb_size = strtol(optarg, NULL, 0);
                 if (tcg_tb_size < 0) {
                     tcg_tb_size = 0;
                 }
+#else
+                error_report("TCG is disabled");
+                exit(1);
+#endif
                 break;
             case QEMU_OPTION_icount:
                 icount_opts = qemu_opts_parse_noisily(qemu_find_opts("icount"),
@@ -4457,7 +4467,9 @@ int main(int argc, char **argv, char **envp)
         qemu_opts_del(icount_opts);
     }
 
+#ifdef CONFIG_TCG
     qemu_tcg_configure(accel_opts, &error_fatal);
+#endif
 
     if (default_net) {
         QemuOptsList *net = qemu_find_opts("net");
-- 
1.9.1


Re: [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code
Posted by Paolo Bonzini 8 years, 7 months ago

On 21/06/2017 12:19, Yang Zhong wrote:
> @@ -3738,8 +3738,13 @@ int main(int argc, char **argv, char **envp)
>                  }
>                  break;
>               case QEMU_OPTION_no_kvm:
> +#ifdef CONFIG_TCG
>                  olist = qemu_find_opts("machine");
>                  qemu_opts_parse_noisily(olist, "accel=tcg", false);
> +#else
> +                error_report("TCG is disabled");

This should not be necessary, it would work anyway.

> +                exit(1);
> +#endif
>                  break;
>              case QEMU_OPTION_no_kvm_pit: {
>                  error_report("warning: ignoring deprecated option");
> @@ -3915,10 +3920,15 @@ int main(int argc, char **argv, char **envp)
>                  configure_rtc(opts);
>                  break;
>              case QEMU_OPTION_tb_size:
> +#ifdef CONFIG_TCG
>                  tcg_tb_size = strtol(optarg, NULL, 0);
>                  if (tcg_tb_size < 0) {
>                      tcg_tb_size = 0;
>                  }
> +#else
> +                error_report("TCG is disabled");
> +                exit(1);
> +#endif

This would regress the case where people are using -tb-size with KVM.
Just leave it aside.

>                  break;
>              case QEMU_OPTION_icount:
>                  icount_opts = qemu_opts_parse_noisily(qemu_find_opts("icount"),
> @@ -4457,7 +4467,9 @@ int main(int argc, char **argv, char **envp)
>          qemu_opts_del(icount_opts);
>      }
>  
> +#ifdef CONFIG_TCG
>      qemu_tcg_configure(accel_opts, &error_fatal);

Why is this appearing in this patch?

> +#endif

Re: [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code
Posted by Zhong Yang 8 years, 7 months ago
On Wed, Jun 21, 2017 at 03:10:36PM +0200, Paolo Bonzini wrote:
> 
> 
> On 21/06/2017 12:19, Yang Zhong wrote:
> > @@ -3738,8 +3738,13 @@ int main(int argc, char **argv, char **envp)
> >                  }
> >                  break;
> >               case QEMU_OPTION_no_kvm:
> > +#ifdef CONFIG_TCG
> >                  olist = qemu_find_opts("machine");
> >                  qemu_opts_parse_noisily(olist, "accel=tcg", false);
> > +#else
> > +                error_report("TCG is disabled");
> 
> This should not be necessary, it would work anyway.
> 
  Hello Paolo,

  You are right, i justly did the test to verify your comment, i will remove this CONFIG_TCG. thanks!

  Yang

> > +                exit(1);
> > +#endif
> >                  break;
> >              case QEMU_OPTION_no_kvm_pit: {
> >                  error_report("warning: ignoring deprecated option");
> > @@ -3915,10 +3920,15 @@ int main(int argc, char **argv, char **envp)
> >                  configure_rtc(opts);
> >                  break;
> >              case QEMU_OPTION_tb_size:
> > +#ifdef CONFIG_TCG
> >                  tcg_tb_size = strtol(optarg, NULL, 0);
> >                  if (tcg_tb_size < 0) {
> >                      tcg_tb_size = 0;
> >                  }
> > +#else
> > +                error_report("TCG is disabled");
> > +                exit(1);
> > +#endif
> 
> This would regress the case where people are using -tb-size with KVM.
> Just leave it aside.
> 
  Hello Paolo,

  The tb_size is only useful in TCG mode, only tcg_init() will call this variable.
  If TCG is disabled in compile, the KVM will not need this variable. Of course, if
  we keep this variable in pure KVM mode, there is not any side effect. What's your 
  opinion? thanks!

  Yang 

> >                  break;
> >              case QEMU_OPTION_icount:
> >                  icount_opts = qemu_opts_parse_noisily(qemu_find_opts("icount"),
> > @@ -4457,7 +4467,9 @@ int main(int argc, char **argv, char **envp)
> >          qemu_opts_del(icount_opts);
> >      }
> >  
> > +#ifdef CONFIG_TCG
> >      qemu_tcg_configure(accel_opts, &error_fatal);
> 
> Why is this appearing in this patch?
> 
  Hello Paolo,

  If the TCG is disabled, the qemu_tcg_configure() is not useful, this function only set
  the single or mutiple thread for TCG. thanks!

  Yang

> > +#endif