[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL v2 2/9] well-defined listing order for machine ty
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PULL v2 2/9] well-defined listing order for machine types |
Date: |
Mon, 03 Nov 2014 14:11:18 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.0 |
Am 03.11.2014 um 14:04 schrieb Laszlo Ersek:
> On 10/22/14 10:18, 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>
>> Reviewed-by: Paolo Bonzini <address@hidden>
>> Reviewed-by: Marcel Apfelbaum <address@hidden>
>> Acked-by: David Gibson <address@hidden>
[...]
>
> May I ask about the fate of this PULL request (in particular I care
> about this patch, and the next one)?
Michael sent a new, larger PULL shortly before you asked. :)
Cheers,
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg