qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v4 2/2] vl: Deprecate auto-loading of qemu.conf
Date: Thu, 5 Oct 2017 09:34:14 -0300	[thread overview]
Message-ID: <20171005123414.GE4015@localhost.localdomain> (raw)
In-Reply-To: <87infugpe6.fsf@dusky.pond.sub.org>

On Thu, Oct 05, 2017 at 07:00:33AM +0200, Markus Armbruster wrote:
> Eduardo Habkost <ehabkost@redhat.com> writes:
> 
> > On Wed, Oct 04, 2017 at 09:23:08AM -0300, Eduardo Habkost wrote:
> >> On Wed, Oct 04, 2017 at 07:42:17AM +0200, Markus Armbruster wrote:
> >> > Eduardo Habkost <ehabkost@redhat.com> writes:
> >> > 
> >> > > In case there were options set in the default config file, print
> >> > > a warning so users can update their scripts.
> >> > >
> >> > > If somebody wants to keep the config file as-is, avoid the
> >> > > warning and use a command-line that will work in future QEMU
> >> > > versions, they can use:
> >> > >
> >> > >  $QEMU -no-user-config -readconfig /etc/qemu/qemu.conf
> >> > >
> >> > > I was going to include the suggestion in the warning message, but
> >> > > I thought it could make it more confusing.  The suggestion is
> >> > > documented in qemu-doc.texi.
> >> > >
> >> > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> >> > > ---
> >> > > Changes v3 -> v4:
> >> > > * Use warn_report() instead of error_report("warning: ...")
> >> > >   (Eric Blake)
> >> > > * Document as a deprecated feature in qemu-doc.texi
> >> > > * Update subject line
> >> > >   (was: "vl: Print warning when a default config file is loaded")
> >> > >
> >> > > Changes v2 -> v3:
> >> > > * Rebase (no code changes)
> >> > > * Commit message update: suggest -no-user-config
> >> > > ---
> >> > >  vl.c          | 6 ++++++
> >> > >  qemu-doc.texi | 8 ++++++++
> >> > >  2 files changed, 14 insertions(+)
> >> > >
> >> > > diff --git a/vl.c b/vl.c
> >> > > index 3fed457921..1b0ecdf74e 100644
> >> > > --- a/vl.c
> >> > > +++ b/vl.c
> >> > > @@ -3066,6 +3066,12 @@ static int qemu_read_default_config_file(void)
> >> > >          return ret;
> >> > >      }
> >> > >  
> >> > > +    if (ret > 0) {
> >> > > +        loc_set_none();
> >> > 
> >> > Sure we need this here?
> >> 
> >> IIRC we needed it in the original version, but I don't remember
> >> why.  I will check this.
> >
> > This is the result if we don't clear error location state:
> >
> >   $ ./x86_64-softmmu/qemu-system-x86_64 -monitor stdio -display none -device foobar
> >   qemu-system-x86_64: -device foobar: warning: Future QEMU versions won't load /usr/local/etc/qemu/qemu.conf automatically
> >                       ^^^^^^^^^^^^^^
> >
> > However, it's probably better to do this right after the loop,
> > just like we already do in the second option parsing loop:
> >
> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > ---
> > diff --git a/vl.c b/vl.c
> > index f9acc17c01..a8fd247d71 100644
> > --- a/vl.c
> > +++ b/vl.c
> > @@ -3067,7 +3067,6 @@ static int qemu_read_default_config_file(void)
> >      }
> >  
> >      if (ret > 0) {
> > -        loc_set_none();
> >          warn_report("Future QEMU versions won't load %s automatically",
> >                       CONFIG_QEMU_CONFDIR "/qemu.conf");
> >      }
> > @@ -3224,6 +3223,11 @@ int main(int argc, char **argv, char **envp)
> >              }
> >          }
> >      }
> > +    /*
> > +     * Clear error location left behind by the loop.
> > +     * Best done right after the loop.  Do not insert code here!
> > +     */
> > +    loc_set_none();
> >  
> >      if (userconfig) {
> >          if (qemu_read_default_config_file() < 0) {
> 
> Hmm, could this hunk be a bug fix?  Consider before the patch:
> 
>     qemu_read_default_config_file()
>         qemu_read_config_file()
>             qemu_config_parse()
>                 error_report() or error_report_err()
> 
> I suspect this uses current location left behind by the loop
> inappropriately.  If true, the hunk should be a separate bug fix patch.

It does, but nothing was broken because the only thing between
the two option parsing loops is qemu_read_default_config_file(),
and qemu_config_parse() calls loc_push_none() immediately.

But it makes sense as a separate patch anyway.  I will send a new
series.

-- 
Eduardo

      reply	other threads:[~2017-10-05 12:34 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-04  2:50 [Qemu-devel] [PATCH v4 0/2] vl: Deprecate auto-loading of qemu.conf Eduardo Habkost
2017-10-04  2:50 ` [Qemu-devel] [PATCH v4 1/2] config: qemu_config_parse() return number of config groups Eduardo Habkost
2017-10-04 20:41   ` Eduardo Habkost
2017-10-04  2:50 ` [Qemu-devel] [PATCH v4 2/2] vl: Deprecate auto-loading of qemu.conf Eduardo Habkost
2017-10-04  5:42   ` Markus Armbruster
2017-10-04 12:23     ` Eduardo Habkost
2017-10-04 20:57       ` Eduardo Habkost
2017-10-05  5:00         ` Markus Armbruster
2017-10-05 12:34           ` Eduardo Habkost [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171005123414.GE4015@localhost.localdomain \
    --to=ehabkost@redhat.com \
    --cc=armbru@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).