diff mbox series

[2/2] meson: Warn when TCI is selected but TCG backend is available

Message ID 20210122092205.1855659-3-philmd@redhat.com (mailing list archive)
State New, archived
Headers show
Series meson: Try to clarify TCG / TCI options for new users | expand

Commit Message

Philippe Mathieu-Daudé Jan. 22, 2021, 9:22 a.m. UTC
Some new users get confused with 'TCG' and 'TCI', and enable TCI
support expecting to enable TCG.

Emit a warning when native TCG backend is available on the
host architecture, mentioning this is a suboptimal configuration.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 meson.build | 3 +++
 1 file changed, 3 insertions(+)

Comments

Thomas Huth Jan. 22, 2021, 9:43 a.m. UTC | #1
On 22/01/2021 10.22, Philippe Mathieu-Daudé wrote:
> Some new users get confused with 'TCG' and 'TCI', and enable TCI
> support expecting to enable TCG.
> 
> Emit a warning when native TCG backend is available on the
> host architecture, mentioning this is a suboptimal configuration.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>   meson.build | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/meson.build b/meson.build
> index 0a645e54662..7aa52d306c6 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -234,6 +234,9 @@
>         error('Unsupported CPU @0@, try --enable-tcg-interpreter'.format(cpu))
>       endif
>     endif
> +  if 'CONFIG_TCG_INTERPRETER' in config_host and cpu in supported_cpus
> +    warning('Experimental TCI requested while native TCG is available on @0@, suboptimal performance expected'.format(cpu))
> +  endif
>     accelerators += 'CONFIG_TCG'
>     config_host += { 'CONFIG_TCG': 'y' }
>   endif
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

... maybe you could also add some wording to the help text of the configure 
script? Or maybe we could simply rename the "--enable-tcg-interpreter" 
option into "--enable-tci" to avoid confusion with the normal TCG ?
Philippe Mathieu-Daudé Jan. 22, 2021, 9:46 a.m. UTC | #2
On Fri, Jan 22, 2021 at 10:43 AM Thomas Huth <thuth@redhat.com> wrote:
> On 22/01/2021 10.22, Philippe Mathieu-Daudé wrote:
> > Some new users get confused with 'TCG' and 'TCI', and enable TCI
> > support expecting to enable TCG.
> >
> > Emit a warning when native TCG backend is available on the
> > host architecture, mentioning this is a suboptimal configuration.
> >
> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> > ---
> >   meson.build | 3 +++
> >   1 file changed, 3 insertions(+)
> >
> > diff --git a/meson.build b/meson.build
> > index 0a645e54662..7aa52d306c6 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -234,6 +234,9 @@
> >         error('Unsupported CPU @0@, try --enable-tcg-interpreter'.format(cpu))
> >       endif
> >     endif
> > +  if 'CONFIG_TCG_INTERPRETER' in config_host and cpu in supported_cpus
> > +    warning('Experimental TCI requested while native TCG is available on @0@, suboptimal performance expected'.format(cpu))
> > +  endif
> >     accelerators += 'CONFIG_TCG'
> >     config_host += { 'CONFIG_TCG': 'y' }
> >   endif
> >
>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
>
> ... maybe you could also add some wording to the help text of the configure
> script? Or maybe we could simply rename the "--enable-tcg-interpreter"
> option into "--enable-tci" to avoid confusion with the normal TCG ?

I also thought about renaming as --enable-experimental-tci but then doubt that
would help, some users just want to enable everything :)
Thomas Huth Jan. 22, 2021, 9:47 a.m. UTC | #3
On 22/01/2021 10.46, Philippe Mathieu-Daudé wrote:
> On Fri, Jan 22, 2021 at 10:43 AM Thomas Huth <thuth@redhat.com> wrote:
>> On 22/01/2021 10.22, Philippe Mathieu-Daudé wrote:
>>> Some new users get confused with 'TCG' and 'TCI', and enable TCI
>>> support expecting to enable TCG.
>>>
>>> Emit a warning when native TCG backend is available on the
>>> host architecture, mentioning this is a suboptimal configuration.
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>> ---
>>>    meson.build | 3 +++
>>>    1 file changed, 3 insertions(+)
>>>
>>> diff --git a/meson.build b/meson.build
>>> index 0a645e54662..7aa52d306c6 100644
>>> --- a/meson.build
>>> +++ b/meson.build
>>> @@ -234,6 +234,9 @@
>>>          error('Unsupported CPU @0@, try --enable-tcg-interpreter'.format(cpu))
>>>        endif
>>>      endif
>>> +  if 'CONFIG_TCG_INTERPRETER' in config_host and cpu in supported_cpus
>>> +    warning('Experimental TCI requested while native TCG is available on @0@, suboptimal performance expected'.format(cpu))
>>> +  endif
>>>      accelerators += 'CONFIG_TCG'
>>>      config_host += { 'CONFIG_TCG': 'y' }
>>>    endif
>>>
>>
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>>
>> ... maybe you could also add some wording to the help text of the configure
>> script? Or maybe we could simply rename the "--enable-tcg-interpreter"
>> option into "--enable-tci" to avoid confusion with the normal TCG ?
> 
> I also thought about renaming as --enable-experimental-tci but then doubt that
> would help, some users just want to enable everything :)

Then we should rename it into --disable-native-tcg ;-)

  Thomas
Stefan Weil Jan. 22, 2021, 9:56 a.m. UTC | #4
Am 22.01.21 um 10:47 schrieb Thomas Huth:

> On 22/01/2021 10.46, Philippe Mathieu-Daudé wrote:
>> On Fri, Jan 22, 2021 at 10:43 AM Thomas Huth <thuth@redhat.com> wrote:
>>> On 22/01/2021 10.22, Philippe Mathieu-Daudé wrote:
>>>> Some new users get confused with 'TCG' and 'TCI', and enable TCI
>>>> support expecting to enable TCG.
>>>>
>>>> Emit a warning when native TCG backend is available on the
>>>> host architecture, mentioning this is a suboptimal configuration.
>>>>
>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>>> ---
>>>>    meson.build | 3 +++
>>>>    1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/meson.build b/meson.build
>>>> index 0a645e54662..7aa52d306c6 100644
>>>> --- a/meson.build
>>>> +++ b/meson.build
>>>> @@ -234,6 +234,9 @@
>>>>          error('Unsupported CPU @0@, try 
>>>> --enable-tcg-interpreter'.format(cpu))
>>>>        endif
>>>>      endif
>>>> +  if 'CONFIG_TCG_INTERPRETER' in config_host and cpu in 
>>>> supported_cpus
>>>> +    warning('Experimental TCI requested while native TCG is 
>>>> available on @0@, suboptimal performance expected'.format(cpu))
>>>> +  endif
>>>>      accelerators += 'CONFIG_TCG'
>>>>      config_host += { 'CONFIG_TCG': 'y' }
>>>>    endif
>>>>
>>>
>>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>>>
>>> ... maybe you could also add some wording to the help text of the 
>>> configure
>>> script? Or maybe we could simply rename the "--enable-tcg-interpreter"
>>> option into "--enable-tci" to avoid confusion with the normal TCG ?
>>
>> I also thought about renaming as --enable-experimental-tci but then 
>> doubt that
>> would help, some users just want to enable everything :)
>
> Then we should rename it into --disable-native-tcg ;-)
>
>  Thomas
>

Both patches are fine (also optionally with the suggested addition of 
"slow"), so

Reviewed-by: Stefan Weil <sw@weilnetz.de>

I think that --enable-tci would increase the TCI/TCG confusion and 
suggest to keep the current --enable-tcg-interpreter as most experts 
know that an interpreter is usually something which is slow.

As soon as time permits I also plan to make a new effort to integrate 
TCI as a run time option. Some years ago it was not possible to have 
code which supports both native and interpreted TCG, but this might have 
changed now. If it is possible, this would simplify CI a lot, and users 
could select the interpreter via a command line argument.

Stefan
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index 0a645e54662..7aa52d306c6 100644
--- a/meson.build
+++ b/meson.build
@@ -234,6 +234,9 @@ 
       error('Unsupported CPU @0@, try --enable-tcg-interpreter'.format(cpu))
     endif
   endif
+  if 'CONFIG_TCG_INTERPRETER' in config_host and cpu in supported_cpus
+    warning('Experimental TCI requested while native TCG is available on @0@, suboptimal performance expected'.format(cpu))
+  endif
   accelerators += 'CONFIG_TCG'
   config_host += { 'CONFIG_TCG': 'y' }
 endif