[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 2/7] well-defined listing order for machine types
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PULL 2/7] well-defined listing order for machine types |
Date: |
Wed, 22 Oct 2014 11:03:40 +0300 |
On Wed, Oct 22, 2014 at 10:39:16AM +0300, Marcel Apfelbaum wrote:
> On Wed, 2014-10-22 at 10:26 +0300, Michael S. Tsirkin wrote:
> > From: Laszlo Ersek <address@hidden>
> >
> > Commit 261747f1 ("vl: Use MachineClass instead of global QEMUMachine
> > list") broke the ordering of the machine types in the user-visible output
> > of
> >
> > qemu-system-XXXX -M \?
> >
> > This occurred because registration was rebased from a manually maintained
> > linked list to GLib hash tables:
> >
> > qemu_register_machine()
> > type_register()
> > type_register_internal()
> > type_table_add()
> > g_hash_table_insert()
> >
> > and because the listing was rebased accordingly, from the traversal of the
> > list to the traversal of the hash table (rendered as an ad-hoc list):
> >
> > machine_parse()
> > object_class_get_list(TYPE_MACHINE)
> > object_class_foreach()
> > g_hash_table_foreach()
> >
> > The current order is a "random" one, for practical purposes, which is
> > annoying for users.
> >
> > Introduce new members QEMUMachine.family and MachineClass.family, allowing
> > machine types to be "clustered". Introduce a comparator function that
> > establishes a total ordering between machine types, ordering machine types
> > in the same family next to each other. In machine_parse(), list the
> > supported machine types sorted with the comparator function.
> >
> > The comparator function:
> > - sorts whole families before standalone machine types,
> > - sorts whole families between each other in alphabetically increasing
> > order,
> > - sorts machine types inside the same family in alphabetically decreasing
> > order,
> > - sorts standalone machine types between each other in alphabetically
> > increasing order.
> >
> > After this patch, all machine types are considered standalone, and
> > accordingly, the output is alphabetically ascending. This will be refined
> > in the following patches.
> >
> > Effects on the x86_64 output:
> >
> > Before:
> >
> > > Supported machines are:
> > > pc-0.13 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-2.0 Standard PC (i440FX + PIIX, 1996)
> > > pc-1.0 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-2.1 Standard PC (i440FX + PIIX, 1996)
> > > pc-q35-1.7 Standard PC (Q35 + ICH9, 2009)
> > > pc-1.1 Standard PC (i440FX + PIIX, 1996)
> > > pc-0.14 Standard PC (i440FX + PIIX, 1996)
> > > pc-q35-2.0 Standard PC (Q35 + ICH9, 2009)
> > > pc-i440fx-1.4 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-1.5 Standard PC (i440FX + PIIX, 1996)
> > > pc-0.15 Standard PC (i440FX + PIIX, 1996)
> > > pc-q35-1.4 Standard PC (Q35 + ICH9, 2009)
> > > isapc ISA-only PC
> > > pc Standard PC (i440FX + PIIX, 1996) (alias of
> > > pc-i440fx-2.2)
> > > pc-i440fx-2.2 Standard PC (i440FX + PIIX, 1996) (default)
> > > pc-1.2 Standard PC (i440FX + PIIX, 1996)
> > > pc-0.10 Standard PC (i440FX + PIIX, 1996)
> > > pc-0.11 Standard PC (i440FX + PIIX, 1996)
> > > pc-q35-2.1 Standard PC (Q35 + ICH9, 2009)
> > > q35 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-2.2)
> > > pc-q35-2.2 Standard PC (Q35 + ICH9, 2009)
> > > pc-i440fx-1.6 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-1.7 Standard PC (i440FX + PIIX, 1996)
> > > none empty machine
> > > pc-q35-1.5 Standard PC (Q35 + ICH9, 2009)
> > > pc-q35-1.6 Standard PC (Q35 + ICH9, 2009)
> > > pc-0.12 Standard PC (i440FX + PIIX, 1996)
> > > pc-1.3 Standard PC (i440FX + PIIX, 1996)
> >
> > After:
> >
> > > Supported machines are:
> > > isapc ISA-only PC
> > > none empty machine
> > > pc-0.10 Standard PC (i440FX + PIIX, 1996)
> > > pc-0.11 Standard PC (i440FX + PIIX, 1996)
> > > pc-0.12 Standard PC (i440FX + PIIX, 1996)
> > > pc-0.13 Standard PC (i440FX + PIIX, 1996)
> > > pc-0.14 Standard PC (i440FX + PIIX, 1996)
> > > pc-0.15 Standard PC (i440FX + PIIX, 1996)
> > > pc-1.0 Standard PC (i440FX + PIIX, 1996)
> > > pc-1.1 Standard PC (i440FX + PIIX, 1996)
> > > pc-1.2 Standard PC (i440FX + PIIX, 1996)
> > > pc-1.3 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-1.4 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-1.5 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-1.6 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-1.7 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-2.0 Standard PC (i440FX + PIIX, 1996)
> > > pc-i440fx-2.1 Standard PC (i440FX + PIIX, 1996)
> > > pc Standard PC (i440FX + PIIX, 1996) (alias of
> > > pc-i440fx-2.2)
> > > pc-i440fx-2.2 Standard PC (i440FX + PIIX, 1996) (default)
> > > pc-q35-1.4 Standard PC (Q35 + ICH9, 2009)
> > > pc-q35-1.5 Standard PC (Q35 + ICH9, 2009)
> > > pc-q35-1.6 Standard PC (Q35 + ICH9, 2009)
> > > pc-q35-1.7 Standard PC (Q35 + ICH9, 2009)
> > > pc-q35-2.0 Standard PC (Q35 + ICH9, 2009)
> > > pc-q35-2.1 Standard PC (Q35 + ICH9, 2009)
> > > q35 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-2.2)
> > > pc-q35-2.2 Standard PC (Q35 + ICH9, 2009)
> >
> > Effects on the aarch64 output:
> >
> > Before:
> >
> > > Supported machines are:
> > > lm3s811evb Stellaris LM3S811EVB
> > > canon-a1100 Canon PowerShot A1100 IS
> > > vexpress-a15 ARM Versatile Express for Cortex-A15
> > > vexpress-a9 ARM Versatile Express for Cortex-A9
> > > xilinx-zynq-a9 Xilinx Zynq Platform Baseboard for Cortex-A9
> > > connex Gumstix Connex (PXA255)
> > > n800 Nokia N800 tablet aka. RX-34 (OMAP2420)
> > > lm3s6965evb Stellaris LM3S6965EVB
> > > versatileab ARM Versatile/AB (ARM926EJ-S)
> > > borzoi Borzoi PDA (PXA270)
> > > tosa Tosa PDA (PXA255)
> > > cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310)
> > > midway Calxeda Midway (ECX-2000)
> > > mainstone Mainstone II (PXA27x)
> > > n810 Nokia N810 tablet aka. RX-44 (OMAP2420)
> > > terrier Terrier PDA (PXA270)
> > > highbank Calxeda Highbank (ECX-1000)
> > > cubieboard cubietech cubieboard
> > > sx1-v1 Siemens SX1 (OMAP310) V1
> > > sx1 Siemens SX1 (OMAP310) V2
> > > realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
> > > kzm ARM KZM Emulation Baseboard (ARM1136)
> > > akita Akita PDA (PXA270)
> > > z2 Zipit Z2 (PXA27x)
> > > musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)
> > > realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
> > > versatilepb ARM Versatile/PB (ARM926EJ-S)
> > > realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
> > > realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
> > > spitz Spitz PDA (PXA270)
> > > none empty machine
> > > virt ARM Virtual Machine
> > > collie Collie PDA (SA-1110)
> > > smdkc210 Samsung SMDKC210 board (Exynos4210)
> > > verdex Gumstix Verdex (PXA270)
> > > nuri Samsung NURI board (Exynos4210)
> > > integratorcp ARM Integrator/CP (ARM926EJ-S)
> >
> > After:
> >
> > > Supported machines are:
> > > akita Akita PDA (PXA270)
> > > borzoi Borzoi PDA (PXA270)
> > > canon-a1100 Canon PowerShot A1100 IS
> > > cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310)
> > > collie Collie PDA (SA-1110)
> > > connex Gumstix Connex (PXA255)
> > > cubieboard cubietech cubieboard
> > > highbank Calxeda Highbank (ECX-1000)
> > > integratorcp ARM Integrator/CP (ARM926EJ-S)
> > > kzm ARM KZM Emulation Baseboard (ARM1136)
> > > lm3s6965evb Stellaris LM3S6965EVB
> > > lm3s811evb Stellaris LM3S811EVB
> > > mainstone Mainstone II (PXA27x)
> > > midway Calxeda Midway (ECX-2000)
> > > musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)
> > > n800 Nokia N800 tablet aka. RX-34 (OMAP2420)
> > > n810 Nokia N810 tablet aka. RX-44 (OMAP2420)
> > > none empty machine
> > > nuri Samsung NURI board (Exynos4210)
> > > realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
> > > realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
> > > realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
> > > realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
> > > smdkc210 Samsung SMDKC210 board (Exynos4210)
> > > spitz Spitz PDA (PXA270)
> > > sx1 Siemens SX1 (OMAP310) V2
> > > sx1-v1 Siemens SX1 (OMAP310) V1
> > > terrier Terrier PDA (PXA270)
> > > tosa Tosa PDA (PXA255)
> > > verdex Gumstix Verdex (PXA270)
> > > versatileab ARM Versatile/AB (ARM926EJ-S)
> > > versatilepb ARM Versatile/PB (ARM926EJ-S)
> > > vexpress-a15 ARM Versatile Express for Cortex-A15
> > > vexpress-a9 ARM Versatile Express for Cortex-A9
> > > virt ARM Virtual Machine
> > > xilinx-zynq-a9 Xilinx Zynq Platform Baseboard for Cortex-A9
> > > z2 Zipit Z2 (PXA27x)
> >
> > RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1145042
> > Signed-off-by: Laszlo Ersek <address@hidden>
> > Reviewed-by: Michael S. Tsirkin <address@hidden>
> > Signed-off-by: Michael S. Tsirkin <address@hidden>
>
>
> This misses my and Paolo's "Reviewed-by" tag :(
>
> Thanks,
> Marcel
>
> [...]
Oops, lost the acks.
That's not nice, I'll do v2 just for this.
--
MST
- [Qemu-devel] [PULL 0/7] pc, virtio, misc bugfixes, Michael S. Tsirkin, 2014/10/22
- [Qemu-devel] [PULL 1/7] smbios: Fix assertion on socket count calculation, Michael S. Tsirkin, 2014/10/22
- [Qemu-devel] [PULL 2/7] well-defined listing order for machine types, Michael S. Tsirkin, 2014/10/22
- [Qemu-devel] [PULL 3/7] i386/pc: add piix and q35 machtypes to sorting families for -M \?, Michael S. Tsirkin, 2014/10/22
- [Qemu-devel] [PULL 4/7] pc: Fix disabling of vapic for compat PC models, Michael S. Tsirkin, 2014/10/22
- [Qemu-devel] [PULL 5/7] i386: Add an ACPI_EXTRACT_NAME_BUFFER16 directive., Michael S. Tsirkin, 2014/10/22
- [Qemu-devel] [PULL 6/7] pcie: change confused comment clearer, Michael S. Tsirkin, 2014/10/22
- [Qemu-devel] [PULL 7/7] virtio-pci: fix migration for pci bus master, Michael S. Tsirkin, 2014/10/22