All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Marcel Apfelbaum <marcel.a@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Alexey Kardashevskiy" <aik@ozlabs.ru>,
	"Markus Armbruster" <armbru@redhat.com>,
	qemu-devel@nongnu.org, "Paul Mackerras" <paulus@samba.org>,
	"Anthony Liguori" <aliguori@amazon.com>,
	"Igor Mammedov" <imammedo@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Andreas Färber" <afaerber@suse.de>,
	"Alexander Graf" <agraf@suse.com>
Subject: Re: [Qemu-devel] [PATCH 3/4] machine: Introduce QEMU_COMPAT_* macros
Date: Wed, 25 Jun 2014 10:18:27 +0300	[thread overview]
Message-ID: <20140625071827.GF25563@redhat.com> (raw)
In-Reply-To: <1403678800.20031.36.camel@localhost.localdomain>

On Wed, Jun 25, 2014 at 09:46:40AM +0300, Marcel Apfelbaum wrote:
> On Wed, 2014-06-25 at 08:20 +0300, Michael S. Tsirkin wrote:
> > On Tue, Jun 24, 2014 at 03:02:03PM -0300, Eduardo Habkost wrote:
> > > The QEMU_COMPAT_* macros will contain compat properties that are not
> > > specific to PC, and may be reused by other machine-types.
> > > 
> > > PC-specific properties were left on the PC_COMPAT_* macros.
> > > 
> > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > > ---
> > >  include/hw/boards.h  | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++
> > >  include/hw/i386/pc.h | 150 ++---------------------------------------------
> > >  2 files changed, 166 insertions(+), 145 deletions(-)
> > > 
> > > diff --git a/include/hw/boards.h b/include/hw/boards.h
> > > index 605a970..709b582 100644
> > > --- a/include/hw/boards.h
> > > +++ b/include/hw/boards.h
> > > @@ -134,4 +134,165 @@ struct MachineState {
> > >      const char *cpu_model;
> > >  };
> > >  
> > > +
> > > +/* Macros for compat_props corresponding to specific QEMU versions: */
> > > +
> > > +#define QEMU_COMPAT_2_0 \
> > > +    {\
> > > +        .driver   = "virtio-scsi-pci",\
> > > +        .property = "any_layout",\
> > > +        .value    = "off",\
> > > +    },\
> > > +    {\
> > > +        .driver   = "apic",\
> > > +        .property = "version",\
> > > +        .value    = stringify(0x11),\
> > > +    },\
> > > +    {\
> > > +        .driver   = "nec-usb-xhci",\
> > > +        .property = "superspeed-ports-first",\
> > > +        .value    = "off",\
> > > +    },\
> > > +    {\
> > > +        .driver   = "pci-serial",\
> > > +        .property = "prog_if",\
> > > +        .value    = stringify(0),\
> > > +    },\
> > > +    {\
> > > +        .driver   = "pci-serial-2x",\
> > > +        .property = "prof_if",\
> > > +        .value    = stringify(0),\
> > > +    },\
> > > +    {\
> > > +        .driver   = "pci-serial-4x",\
> > > +        .property = "prog_if",\
> > > +        .value    = stringify(0),\
> > > +    },\
> > > +    {\
> > > +        .driver   = "virtio-net-pci",\
> > > +        .property = "guest_announce",\
> > > +        .value    = "off",\
> > > +    }
> > > +
> > > +#define QEMU_COMPAT_1_7 \
> > > +    {\
> > > +        .driver   = TYPE_USB_DEVICE,\
> > > +        .property = "msos-desc",\
> > > +        .value    = "no",\
> > > +    }
> > > +
> > > +#define QEMU_COMPAT_1_6 \
> > > +    {\
> > > +        .driver   = "e1000",\
> > > +        .property = "mitigation",\
> > > +        .value    = "off",\
> > > +    },{\
> > > +        .driver   = "qemu64-" TYPE_X86_CPU,\
> > > +        .property = "model",\
> > > +        .value    = stringify(2),\
> > > +    },{\
> > > +        .driver   = "qemu32-" TYPE_X86_CPU,\
> > > +        .property = "model",\
> > > +        .value    = stringify(3),\
> > > +    }
> > > +
> > > +#define QEMU_COMPAT_1_5 \
> > > +    {\
> > > +        .driver   = "Conroe-" TYPE_X86_CPU,\
> > > +        .property = "model",\
> > > +        .value    = stringify(2),\
> > > +    },{\
> > > +        .driver   = "Conroe-" TYPE_X86_CPU,\
> > > +        .property = "level",\
> > > +        .value    = stringify(2),\
> > > +    },{\
> > > +        .driver   = "Penryn-" TYPE_X86_CPU,\
> > > +        .property = "model",\
> > > +        .value    = stringify(2),\
> > > +    },{\
> > > +        .driver   = "Penryn-" TYPE_X86_CPU,\
> > > +        .property = "level",\
> > > +        .value    = stringify(2),\
> > > +    },{\
> > > +        .driver   = "Nehalem-" TYPE_X86_CPU,\
> > > +        .property = "model",\
> > > +        .value    = stringify(2),\
> > > +    },{\
> > > +        .driver   = "Nehalem-" TYPE_X86_CPU,\
> > > +        .property = "level",\
> > > +        .value    = stringify(2),\
> > 
> > Above are x86 CPUs - why have them in a common header?
> > There's no chance any machine except PIIX&Q35  needs these.
> > 
> > > +        .driver   = "virtio-net-pci",\
> > > +        .property = "any_layout",\
> > > +        .value    = "off",\
> > 
> > Here's an example.
> > If you are using a non x86 target, QEMU 2.0
> > has no way to select a machine with this
> > value.
> > So why expose it?
> As we talked on the KVM call, the objective is to assign the
> compat properties per QEMU version and close to their device.
> As a *middle* step we shall put all together in a common file
> per version and not per machine type, and then work on a registration
> mechanism that will be based on the fact that compat properties
> are per device and versioned by QEMU. 
> 
> Thanks,
> Marcel

Yes but that'll stay on a branch and get merged after 2.1.
Let's keep this patch on that branch there as well.


> > 
> > 
> > > +    },{\
> > > +        .driver = TYPE_X86_CPU,\
> > > +        .property = "pmu",\
> > > +        .value = "on",\
> > > +    }
> > > +
> > > +#define QEMU_COMPAT_1_4 \
> > > +    {\
> > > +        .driver   = "scsi-hd",\
> > > +        .property = "discard_granularity",\
> > > +        .value    = stringify(0),\
> > > +    },{\
> > > +        .driver   = "scsi-cd",\
> > > +        .property = "discard_granularity",\
> > > +        .value    = stringify(0),\
> > > +    },{\
> > > +        .driver   = "scsi-disk",\
> > > +        .property = "discard_granularity",\
> > > +        .value    = stringify(0),\
> > > +    },{\
> > > +        .driver   = "ide-hd",\
> > > +        .property = "discard_granularity",\
> > > +        .value    = stringify(0),\
> > > +    },{\
> > > +        .driver   = "ide-cd",\
> > > +        .property = "discard_granularity",\
> > > +        .value    = stringify(0),\
> > > +    },{\
> > > +        .driver   = "ide-drive",\
> > > +        .property = "discard_granularity",\
> > > +        .value    = stringify(0),\
> > > +    },{\
> > > +        .driver   = "virtio-blk-pci",\
> > > +        .property = "discard_granularity",\
> > > +        .value    = stringify(0),\
> > > +    },{\
> > > +        .driver   = "virtio-serial-pci",\
> > > +        .property = "vectors",\
> > > +        /* DEV_NVECTORS_UNSPECIFIED as a uint32_t string */\
> > > +        .value    = stringify(0xFFFFFFFF),\
> > > +    },{ \
> > > +        .driver   = "virtio-net-pci", \
> > > +        .property = "ctrl_guest_offloads", \
> > > +        .value    = "off", \
> > > +    },{\
> > > +        .driver   = "e1000",\
> > > +        .property = "romfile",\
> > > +        .value    = "pxe-e1000.rom",\
> > > +    },{\
> > > +        .driver   = "ne2k_pci",\
> > > +        .property = "romfile",\
> > > +        .value    = "pxe-ne2k_pci.rom",\
> > > +    },{\
> > > +        .driver   = "pcnet",\
> > > +        .property = "romfile",\
> > > +        .value    = "pxe-pcnet.rom",\
> > > +    },{\
> > > +        .driver   = "rtl8139",\
> > > +        .property = "romfile",\
> > > +        .value    = "pxe-rtl8139.rom",\
> > > +    },{\
> > > +        .driver   = "virtio-net-pci",\
> > > +        .property = "romfile",\
> > > +        .value    = "pxe-virtio.rom",\
> > > +    },{\
> > > +        .driver   = "486-" TYPE_X86_CPU,\
> > > +        .property = "model",\
> > > +        .value    = stringify(0),\
> > > +    }
> > > +
> > >  #endif
> > > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> > > index d988b80..631afe7 100644
> > > --- a/include/hw/i386/pc.h
> > > +++ b/include/hw/i386/pc.h
> > > @@ -295,52 +295,15 @@ int e820_get_num_entries(void);
> > >  bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
> > >  
> > >  #define PC_COMPAT_2_0 \
> > > +        QEMU_COMPAT_2_0,\
> > >          {\
> > > -            .driver   = "virtio-scsi-pci",\
> > > -            .property = "any_layout",\
> > > -            .value    = "off",\
> > > -        },{\
> > >              .driver   = "PIIX4_PM",\
> > >              .property = "memory-hotplug-support",\
> > >              .value    = "off",\
> > > -        },\
> > > -        {\
> > > -            .driver   = "apic",\
> > > -            .property = "version",\
> > > -            .value    = stringify(0x11),\
> > > -        },\
> > > -        {\
> > > -            .driver   = "nec-usb-xhci",\
> > > -            .property = "superspeed-ports-first",\
> > > -            .value    = "off",\
> > > -        },\
> > > -        {\
> > > -            .driver   = "pci-serial",\
> > > -            .property = "prog_if",\
> > > -            .value    = stringify(0),\
> > > -        },\
> > > -        {\
> > > -            .driver   = "pci-serial-2x",\
> > > -            .property = "prof_if",\
> > > -            .value    = stringify(0),\
> > > -        },\
> > > -        {\
> > > -            .driver   = "pci-serial-4x",\
> > > -            .property = "prog_if",\
> > > -            .value    = stringify(0),\
> > > -        },\
> > > -        {\
> > > -            .driver   = "virtio-net-pci",\
> > > -            .property = "guest_announce",\
> > > -            .value    = "off",\
> > >          }
> > >  
> > >  #define PC_COMPAT_1_7 \
> > > -        {\
> > > -            .driver   = TYPE_USB_DEVICE,\
> > > -            .property = "msos-desc",\
> > > -            .value    = "no",\
> > > -        },\
> > > +        QEMU_COMPAT_1_7,\
> > >          {\
> > >              .driver   = "PIIX4_PM",\
> > >              .property = "acpi-pci-hotplug-with-bridge-support",\
> > > @@ -348,19 +311,8 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
> > >          }
> > >  
> > >  #define PC_COMPAT_1_6 \
> > > +        QEMU_COMPAT_1_6,\
> > >          {\
> > > -            .driver   = "e1000",\
> > > -            .property = "mitigation",\
> > > -            .value    = "off",\
> > > -        },{\
> > > -            .driver   = "qemu64-" TYPE_X86_CPU,\
> > > -            .property = "model",\
> > > -            .value    = stringify(2),\
> > > -        },{\
> > > -            .driver   = "qemu32-" TYPE_X86_CPU,\
> > > -            .property = "model",\
> > > -            .value    = stringify(3),\
> > > -        },{\
> > >              .driver   = "i440FX-pcihost",\
> > >              .property = "short_root_bus",\
> > >              .value    = stringify(1),\
> > > @@ -371,39 +323,8 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
> > >          }
> > >  
> > >  #define PC_COMPAT_1_5 \
> > > +        QEMU_COMPAT_1_7,\
> > >          {\
> > > -            .driver   = "Conroe-" TYPE_X86_CPU,\
> > > -            .property = "model",\
> > > -            .value    = stringify(2),\
> > > -        },{\
> > > -            .driver   = "Conroe-" TYPE_X86_CPU,\
> > > -            .property = "level",\
> > > -            .value    = stringify(2),\
> > > -        },{\
> > > -            .driver   = "Penryn-" TYPE_X86_CPU,\
> > > -            .property = "model",\
> > > -            .value    = stringify(2),\
> > > -        },{\
> > > -            .driver   = "Penryn-" TYPE_X86_CPU,\
> > > -            .property = "level",\
> > > -            .value    = stringify(2),\
> > > -        },{\
> > > -            .driver   = "Nehalem-" TYPE_X86_CPU,\
> > > -            .property = "model",\
> > > -            .value    = stringify(2),\
> > > -        },{\
> > > -            .driver   = "Nehalem-" TYPE_X86_CPU,\
> > > -            .property = "level",\
> > > -            .value    = stringify(2),\
> > > -        },{\
> > > -            .driver   = "virtio-net-pci",\
> > > -            .property = "any_layout",\
> > > -            .value    = "off",\
> > > -        },{\
> > > -            .driver = TYPE_X86_CPU,\
> > > -            .property = "pmu",\
> > > -            .value = "on",\
> > > -        },{\
> > >              .driver   = "i440FX-pcihost",\
> > >              .property = "short_root_bus",\
> > >              .value    = stringify(0),\
> > > @@ -414,68 +335,7 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
> > >          }
> > >  
> > >  #define PC_COMPAT_1_4 \
> > > -        {\
> > > -            .driver   = "scsi-hd",\
> > > -            .property = "discard_granularity",\
> > > -            .value    = stringify(0),\
> > > -	},{\
> > > -            .driver   = "scsi-cd",\
> > > -            .property = "discard_granularity",\
> > > -            .value    = stringify(0),\
> > > -	},{\
> > > -            .driver   = "scsi-disk",\
> > > -            .property = "discard_granularity",\
> > > -            .value    = stringify(0),\
> > > -	},{\
> > > -            .driver   = "ide-hd",\
> > > -            .property = "discard_granularity",\
> > > -            .value    = stringify(0),\
> > > -	},{\
> > > -            .driver   = "ide-cd",\
> > > -            .property = "discard_granularity",\
> > > -            .value    = stringify(0),\
> > > -	},{\
> > > -            .driver   = "ide-drive",\
> > > -            .property = "discard_granularity",\
> > > -            .value    = stringify(0),\
> > > -        },{\
> > > -            .driver   = "virtio-blk-pci",\
> > > -            .property = "discard_granularity",\
> > > -            .value    = stringify(0),\
> > > -	},{\
> > > -            .driver   = "virtio-serial-pci",\
> > > -            .property = "vectors",\
> > > -            /* DEV_NVECTORS_UNSPECIFIED as a uint32_t string */\
> > > -            .value    = stringify(0xFFFFFFFF),\
> > > -        },{ \
> > > -            .driver   = "virtio-net-pci", \
> > > -            .property = "ctrl_guest_offloads", \
> > > -            .value    = "off", \
> > > -        },{\
> > > -            .driver   = "e1000",\
> > > -            .property = "romfile",\
> > > -            .value    = "pxe-e1000.rom",\
> > > -        },{\
> > > -            .driver   = "ne2k_pci",\
> > > -            .property = "romfile",\
> > > -            .value    = "pxe-ne2k_pci.rom",\
> > > -        },{\
> > > -            .driver   = "pcnet",\
> > > -            .property = "romfile",\
> > > -            .value    = "pxe-pcnet.rom",\
> > > -        },{\
> > > -            .driver   = "rtl8139",\
> > > -            .property = "romfile",\
> > > -            .value    = "pxe-rtl8139.rom",\
> > > -        },{\
> > > -            .driver   = "virtio-net-pci",\
> > > -            .property = "romfile",\
> > > -            .value    = "pxe-virtio.rom",\
> > > -        },{\
> > > -            .driver   = "486-" TYPE_X86_CPU,\
> > > -            .property = "model",\
> > > -            .value    = stringify(0),\
> > > -        }
> > > +    QEMU_COMPAT_1_4
> > >  
> > >  #define PC_COMMON_MACHINE_OPTIONS \
> > >      .default_boot_order = "cad"
> > > -- 
> > > 1.9.3
> 
> 

  reply	other threads:[~2014-06-25  7:18 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-24 18:02 [Qemu-devel] [PATCH 0/4] Introduce common QEMU_COMPAT_* macros Eduardo Habkost
2014-06-24 18:02 ` [Qemu-devel] [PATCH 1/4] q35: Move q35-specific compat macros to pc_q35.c Eduardo Habkost
2014-06-24 19:23   ` Marcel Apfelbaum
2014-06-24 18:02 ` [Qemu-devel] [PATCH 2/4] pc: Eliminate nesting of common PC_COMPAT_* macros Eduardo Habkost
2014-06-25  5:13   ` Michael S. Tsirkin
2014-06-24 18:02 ` [Qemu-devel] [PATCH 3/4] machine: Introduce QEMU_COMPAT_* macros Eduardo Habkost
2014-06-24 19:20   ` Marcel Apfelbaum
2014-06-25  6:20     ` Igor Mammedov
2014-06-24 20:58   ` BALATON Zoltan
2014-06-24 23:01     ` Eduardo Habkost
2014-06-25  5:20   ` Michael S. Tsirkin
2014-06-25  6:46     ` Marcel Apfelbaum
2014-06-25  7:18       ` Michael S. Tsirkin [this message]
2014-06-25  7:20         ` Marcel Apfelbaum
2014-06-24 18:02 ` [Qemu-devel] [PATCH 4/4] [RFC] Eliminate PC-specific compat_props Eduardo Habkost
2014-06-24 19:51   ` Marcel Apfelbaum
2014-06-24 19:59     ` Eduardo Habkost
2014-06-25  4:55   ` Michael S. Tsirkin
2014-06-25 13:25     ` Eduardo Habkost
2014-06-25 14:12       ` Michael S. Tsirkin
2014-06-25  2:39 ` [Qemu-devel] [PATCH 0/4] Introduce common QEMU_COMPAT_* macros Alexey Kardashevskiy
2014-06-25  5:22   ` Michael S. Tsirkin
2014-06-25  4:57 ` Michael S. Tsirkin
2014-06-25  7:34 ` Michael S. Tsirkin
2014-06-25 13:50   ` Eduardo Habkost

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=20140625071827.GF25563@redhat.com \
    --to=mst@redhat.com \
    --cc=afaerber@suse.de \
    --cc=agraf@suse.com \
    --cc=aik@ozlabs.ru \
    --cc=aliguori@amazon.com \
    --cc=armbru@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=marcel.a@redhat.com \
    --cc=paulus@samba.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --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.