diff mbox

[PULL,10/10] target-i386: Print obsolete warnings if +-features are used

Message ID 1465937948-548-11-git-send-email-ehabkost@redhat.com
State New
Headers show

Commit Message

Eduardo Habkost June 14, 2016, 8:59 p.m. UTC
From: Igor Mammedov <imammedo@redhat.com>

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
[ehabkost: Changed to use error_report()]
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 target-i386/cpu.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Paolo Bonzini June 14, 2016, 9:16 p.m. UTC | #1
----- Original Message -----
> From: "Eduardo Habkost" <ehabkost@redhat.com>
> To: "Peter Maydell" <peter.maydell@linaro.org>
> Cc: "Andreas Färber" <afaerber@suse.de>, qemu-devel@nongnu.org, "Richard Henderson" <rth@twiddle.net>, "Paolo
> Bonzini" <pbonzini@redhat.com>, "Igor Mammedov" <imammedo@redhat.com>
> Sent: Tuesday, June 14, 2016 10:59:08 PM
> Subject: [PULL 10/10] target-i386: Print obsolete warnings if +-features are used
> 
> From: Igor Mammedov <imammedo@redhat.com>
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> [ehabkost: Changed to use error_report()]
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  target-i386/cpu.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 3665fec..baa3783 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -1980,9 +1980,15 @@ static void x86_cpu_parse_featurestr(CPUState *cs,
> char *features,
>          /* Compatibility syntax: */
>          if (featurestr[0] == '+') {
>              add_flagname_to_bitmaps(featurestr + 1, plus_features,
>              &local_err);
> +            error_report(
> +                "'+%s' is obsolete and will be removed in future, use
> '%s=on'",
> +                featurestr + 1, featurestr + 1);
>              continue;
>          } else if (featurestr[0] == '-') {
>              add_flagname_to_bitmaps(featurestr + 1, minus_features,
>              &local_err);
> +            error_report(
> +                "'-%s' is obsolete and will be removed in future, use
> '%s=off'",
> +                featurestr + 1, featurestr + 1);
>              continue;
>          }

I still disagree with this change.

Paolo
Eduardo Habkost June 14, 2016, 9:31 p.m. UTC | #2
On Tue, Jun 14, 2016 at 05:16:40PM -0400, Paolo Bonzini wrote:
> ----- Original Message -----
> > From: "Eduardo Habkost" <ehabkost@redhat.com>
> > To: "Peter Maydell" <peter.maydell@linaro.org>
> > Cc: "Andreas Färber" <afaerber@suse.de>, qemu-devel@nongnu.org, "Richard Henderson" <rth@twiddle.net>, "Paolo
> > Bonzini" <pbonzini@redhat.com>, "Igor Mammedov" <imammedo@redhat.com>
> > Sent: Tuesday, June 14, 2016 10:59:08 PM
> > Subject: [PULL 10/10] target-i386: Print obsolete warnings if +-features are used
> > 
> > From: Igor Mammedov <imammedo@redhat.com>
> > 
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > [ehabkost: Changed to use error_report()]
> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > ---
> >  target-i386/cpu.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> > index 3665fec..baa3783 100644
> > --- a/target-i386/cpu.c
> > +++ b/target-i386/cpu.c
> > @@ -1980,9 +1980,15 @@ static void x86_cpu_parse_featurestr(CPUState *cs,
> > char *features,
> >          /* Compatibility syntax: */
> >          if (featurestr[0] == '+') {
> >              add_flagname_to_bitmaps(featurestr + 1, plus_features,
> >              &local_err);
> > +            error_report(
> > +                "'+%s' is obsolete and will be removed in future, use
> > '%s=on'",
> > +                featurestr + 1, featurestr + 1);
> >              continue;
> >          } else if (featurestr[0] == '-') {
> >              add_flagname_to_bitmaps(featurestr + 1, minus_features,
> >              &local_err);
> > +            error_report(
> > +                "'-%s' is obsolete and will be removed in future, use
> > '%s=off'",
> > +                featurestr + 1, featurestr + 1);
> >              continue;
> >          }
> 
> I still disagree with this change.

I've just removed the patch from the x86-pull-request tag, while
we sort this out.

Do you suggest supporting the "[+-]feature" syntax forever? If
that's really what you prefer, I won't complain too loudly.  It's
only a few extra lines of code, after all.

But if you have something else in mind, please clarify what you
suggest.
Paolo Bonzini June 14, 2016, 9:38 p.m. UTC | #3
----- Original Message -----
> From: "Eduardo Habkost" <ehabkost@redhat.com>
> To: "Paolo Bonzini" <pbonzini@redhat.com>
> Cc: "Peter Maydell" <peter.maydell@linaro.org>, "Andreas Färber" <afaerber@suse.de>, qemu-devel@nongnu.org, "Richard
> Henderson" <rth@twiddle.net>, "Igor Mammedov" <imammedo@redhat.com>
> Sent: Tuesday, June 14, 2016 11:31:03 PM
> Subject: Re: [PULL 10/10] target-i386: Print obsolete warnings if +-features are used
> 
> On Tue, Jun 14, 2016 at 05:16:40PM -0400, Paolo Bonzini wrote:
> > ----- Original Message -----
> > > From: "Eduardo Habkost" <ehabkost@redhat.com>
> > > To: "Peter Maydell" <peter.maydell@linaro.org>
> > > Cc: "Andreas Färber" <afaerber@suse.de>, qemu-devel@nongnu.org, "Richard
> > > Henderson" <rth@twiddle.net>, "Paolo
> > > Bonzini" <pbonzini@redhat.com>, "Igor Mammedov" <imammedo@redhat.com>
> > > Sent: Tuesday, June 14, 2016 10:59:08 PM
> > > Subject: [PULL 10/10] target-i386: Print obsolete warnings if +-features
> > > are used
> > > 
> > > From: Igor Mammedov <imammedo@redhat.com>
> > > 
> > > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > > [ehabkost: Changed to use error_report()]
> > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > > ---
> > >  target-i386/cpu.c | 6 ++++++
> > >  1 file changed, 6 insertions(+)
> > > 
> > > diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> > > index 3665fec..baa3783 100644
> > > --- a/target-i386/cpu.c
> > > +++ b/target-i386/cpu.c
> > > @@ -1980,9 +1980,15 @@ static void x86_cpu_parse_featurestr(CPUState *cs,
> > > char *features,
> > >          /* Compatibility syntax: */
> > >          if (featurestr[0] == '+') {
> > >              add_flagname_to_bitmaps(featurestr + 1, plus_features,
> > >              &local_err);
> > > +            error_report(
> > > +                "'+%s' is obsolete and will be removed in future, use
> > > '%s=on'",
> > > +                featurestr + 1, featurestr + 1);
> > >              continue;
> > >          } else if (featurestr[0] == '-') {
> > >              add_flagname_to_bitmaps(featurestr + 1, minus_features,
> > >              &local_err);
> > > +            error_report(
> > > +                "'-%s' is obsolete and will be removed in future, use
> > > '%s=off'",
> > > +                featurestr + 1, featurestr + 1);
> > >              continue;
> > >          }
> > 
> > I still disagree with this change.
> 
> I've just removed the patch from the x86-pull-request tag, while
> we sort this out.
> 
> Do you suggest supporting the "[+-]feature" syntax forever?

I suggest supporting it, but removing the awful interaction with "feature=on/off"
as soon as possible.  This shouldn't block this pull request, of course.

I just believe it's not practical to remove the feature.  For example
kvm-unit-tests can be used with new kernel and old QEMU, so I don't think
it will move away from [+-]feature very soon.

Regarding libvirt, is "feature=on/off" introspectable?  That would also be
a problem for libvirt to support both old and new QEMU.

Paolo
Eduardo Habkost June 14, 2016, 9:46 p.m. UTC | #4
On Tue, Jun 14, 2016 at 05:38:42PM -0400, Paolo Bonzini wrote:
> 
> 
> ----- Original Message -----
> > From: "Eduardo Habkost" <ehabkost@redhat.com>
> > To: "Paolo Bonzini" <pbonzini@redhat.com>
> > Cc: "Peter Maydell" <peter.maydell@linaro.org>, "Andreas Färber" <afaerber@suse.de>, qemu-devel@nongnu.org, "Richard
> > Henderson" <rth@twiddle.net>, "Igor Mammedov" <imammedo@redhat.com>
> > Sent: Tuesday, June 14, 2016 11:31:03 PM
> > Subject: Re: [PULL 10/10] target-i386: Print obsolete warnings if +-features are used
> > 
> > On Tue, Jun 14, 2016 at 05:16:40PM -0400, Paolo Bonzini wrote:
> > > ----- Original Message -----
> > > > From: "Eduardo Habkost" <ehabkost@redhat.com>
> > > > To: "Peter Maydell" <peter.maydell@linaro.org>
> > > > Cc: "Andreas Färber" <afaerber@suse.de>, qemu-devel@nongnu.org, "Richard
> > > > Henderson" <rth@twiddle.net>, "Paolo
> > > > Bonzini" <pbonzini@redhat.com>, "Igor Mammedov" <imammedo@redhat.com>
> > > > Sent: Tuesday, June 14, 2016 10:59:08 PM
> > > > Subject: [PULL 10/10] target-i386: Print obsolete warnings if +-features
> > > > are used
> > > > 
> > > > From: Igor Mammedov <imammedo@redhat.com>
> > > > 
> > > > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > > > [ehabkost: Changed to use error_report()]
> > > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > > > ---
> > > >  target-i386/cpu.c | 6 ++++++
> > > >  1 file changed, 6 insertions(+)
> > > > 
> > > > diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> > > > index 3665fec..baa3783 100644
> > > > --- a/target-i386/cpu.c
> > > > +++ b/target-i386/cpu.c
> > > > @@ -1980,9 +1980,15 @@ static void x86_cpu_parse_featurestr(CPUState *cs,
> > > > char *features,
> > > >          /* Compatibility syntax: */
> > > >          if (featurestr[0] == '+') {
> > > >              add_flagname_to_bitmaps(featurestr + 1, plus_features,
> > > >              &local_err);
> > > > +            error_report(
> > > > +                "'+%s' is obsolete and will be removed in future, use
> > > > '%s=on'",
> > > > +                featurestr + 1, featurestr + 1);
> > > >              continue;
> > > >          } else if (featurestr[0] == '-') {
> > > >              add_flagname_to_bitmaps(featurestr + 1, minus_features,
> > > >              &local_err);
> > > > +            error_report(
> > > > +                "'-%s' is obsolete and will be removed in future, use
> > > > '%s=off'",
> > > > +                featurestr + 1, featurestr + 1);
> > > >              continue;
> > > >          }
> > > 
> > > I still disagree with this change.
> > 
> > I've just removed the patch from the x86-pull-request tag, while
> > we sort this out.
> > 
> > Do you suggest supporting the "[+-]feature" syntax forever?
> 
> I suggest supporting it, but removing the awful interaction with "feature=on/off"
> as soon as possible.  This shouldn't block this pull request, of course.

I plan to fix the awful ordering semantics. First with a warning
for 1 or 2 releases (only when the weird semantics is really
triggered), then +feature/-feature could be directly translated
to feature=on/feature=off.

> 
> I just believe it's not practical to remove the feature.  For example
> kvm-unit-tests can be used with new kernel and old QEMU, so I don't think
> it will move away from [+-]feature very soon.
> 
> Regarding libvirt, is "feature=on/off" introspectable?  That would also be
> a problem for libvirt to support both old and new QEMU.

Good point. Removing the feature would require dozens of extra
compatibility code to libvirt and kvm-unit-tests just to save 6
lines of code in QEMU. You convinced me.
diff mbox

Patch

diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 3665fec..baa3783 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1980,9 +1980,15 @@  static void x86_cpu_parse_featurestr(CPUState *cs, char *features,
         /* Compatibility syntax: */
         if (featurestr[0] == '+') {
             add_flagname_to_bitmaps(featurestr + 1, plus_features, &local_err);
+            error_report(
+                "'+%s' is obsolete and will be removed in future, use '%s=on'",
+                featurestr + 1, featurestr + 1);
             continue;
         } else if (featurestr[0] == '-') {
             add_flagname_to_bitmaps(featurestr + 1, minus_features, &local_err);
+            error_report(
+                "'-%s' is obsolete and will be removed in future, use '%s=off'",
+                featurestr + 1, featurestr + 1);
             continue;
         }