All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Markus Armbruster" <armbru@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	qemu-devel@nongnu.org, "Anthony Liguori" <anthony@codemonkey.ws>,
	"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] [PATCH] pc: reduce duplication, fix PIIX descriptions
Date: Tue, 27 Aug 2013 11:32:05 +0300	[thread overview]
Message-ID: <20130827083204.GA17886@redhat.com> (raw)
In-Reply-To: <521C555D.9010101@redhat.com>

On Tue, Aug 27, 2013 at 09:29:33AM +0200, Paolo Bonzini wrote:
> Il 27/08/2013 09:01, Michael S. Tsirkin ha scritto:
> > We have a lot of code duplication between machine types,
> > this increases with each new machine type
> > and each new field.
> > 
> > This has already introduced a minor bug: description
> > for pc-1.3 says "Standard PC" while description for
> > pc-1.4 is "Standard PC (i440FX + PIIX, 1996)"
> > which makes you think 1.3 is somehow more standard,
> > or newer, while in fact it's a revision of the same PC.
> > 
> > This patch addresses this issue by using macros, along
> > the lines used by PC_COMPAT_X_X - only for
> > non-property options.
> > 
> > Note: this conflicts (trivially) with patch
> >     [PATCH v3 6/6] hw: Clean up bogus default boot order
> > by Markus. Sent separately for ease of review.  If people like this
> > approach, I can rebase on top of that patch.
> > 
> > The approach can extend to non-PC machine types.
> > 
> > Cc: Markus Armbruster <armbru@redhat.com>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> >  static QEMUMachine isapc_machine = {
> > diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> > index 198c785..084ecac 100644
> > --- a/hw/i386/pc_q35.c
> > +++ b/hw/i386/pc_q35.c
> > @@ -253,39 +253,41 @@ static void pc_q35_init_1_4(QEMUMachineInitArgs *args)
> >      pc_q35_init(args);
> >  }
> >  
> > +#define PC_Q35_MACHINE_OPTIONS \
> > +    PC_DEFAULT_MACHINE_OPTIONS, \
> > +    .hot_add_cpu = pc_hot_add_cpu
> 
> .desc is missing, right?
> 
> Otherwise looks good.
> 
> Paolo

Good catch, I'll fix that up.

> > +
> > +#define PC_Q35_1_6_MACHINE_OPTIONS PC_Q35_MACHINE_OPTIONS
> >  static QEMUMachine pc_q35_machine_v1_6 = {
> > +    PC_Q35_1_6_MACHINE_OPTIONS,
> >      .name = "pc-q35-1.6",
> >      .alias = "q35",
> > -    .desc = "Standard PC (Q35 + ICH9, 2009)",
> >      .init = pc_q35_init_1_6,
> > -    .hot_add_cpu = pc_hot_add_cpu,
> > -    .max_cpus = 255,
> > -    DEFAULT_MACHINE_OPTIONS,
> >  };
> >  
> >  static QEMUMachine pc_q35_machine_v1_5 = {
> > +    PC_Q35_1_6_MACHINE_OPTIONS,
> >      .name = "pc-q35-1.5",
> > -    .desc = "Standard PC (Q35 + ICH9, 2009)",
> >      .init = pc_q35_init_1_5,
> > -    .hot_add_cpu = pc_hot_add_cpu,
> > -    .max_cpus = 255,
> >      .compat_props = (GlobalProperty[]) {
> >          PC_COMPAT_1_5,
> >          { /* end of list */ }
> >      },
> > -    DEFAULT_MACHINE_OPTIONS,
> >  };
> >  
> > +#define PC_Q35_1_4_MACHINE_OPTIONS \
> > +    PC_Q35_1_6_MACHINE_OPTIONS, \
> > +    .hot_add_cpu = NULL
> > +
> >  static QEMUMachine pc_q35_machine_v1_4 = {
> > +    PC_Q35_1_4_MACHINE_OPTIONS,
> >      .name = "pc-q35-1.4",
> > -    .desc = "Standard PC (Q35 + ICH9, 2009)",
> >      .init = pc_q35_init_1_4,
> > -    .max_cpus = 255,
> >      .compat_props = (GlobalProperty[]) {
> >          PC_COMPAT_1_4,
> >          { /* end of list */ }
> >      },
> > -    DEFAULT_MACHINE_OPTIONS,
> >  };
> >  
> >  static void pc_q35_machine_init(void)
> > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> > index 475ba9e..4a38fad 100644
> > --- a/include/hw/i386/pc.h
> > +++ b/include/hw/i386/pc.h
> > @@ -325,4 +325,9 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t);
> >              .value    = stringify(0),\
> >          }
> >  
> > +#define PC_DEFAULT_MACHINE_OPTIONS \
> > +    DEFAULT_MACHINE_OPTIONS, \
> > +    .hot_add_cpu = pc_hot_add_cpu, \
> > +    .max_cpus = 255
> > +
> >  #endif
> > 

  reply	other threads:[~2013-08-27  8:30 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-27  7:01 [Qemu-devel] [PATCH] pc: reduce duplication, fix PIIX descriptions Michael S. Tsirkin
2013-08-27  7:29 ` Paolo Bonzini
2013-08-27  8:32   ` Michael S. Tsirkin [this message]
2013-08-27  7:51 ` Markus Armbruster
2013-08-27 16:09   ` Eduardo Habkost
2013-08-27 16:13     ` Michael S. Tsirkin
2013-08-27 19:19       ` Eduardo Habkost
2013-08-27 21:47         ` Michael S. Tsirkin
2013-08-27 16:42     ` Markus Armbruster

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=20130827083204.GA17886@redhat.com \
    --to=mst@redhat.com \
    --cc=afaerber@suse.de \
    --cc=anthony@codemonkey.ws \
    --cc=armbru@redhat.com \
    --cc=ehabkost@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.