From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58550) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XlHPu-0007yV-Cq for qemu-devel@nongnu.org; Mon, 03 Nov 2014 08:11:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XlHPp-000126-7V for qemu-devel@nongnu.org; Mon, 03 Nov 2014 08:11:30 -0500 Received: from cantor2.suse.de ([195.135.220.15]:45691 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XlHPo-00011f-UF for qemu-devel@nongnu.org; Mon, 03 Nov 2014 08:11:25 -0500 Message-ID: <54577EF6.6070107@suse.de> Date: Mon, 03 Nov 2014 14:11:18 +0100 From: =?windows-1252?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1413965859-7698-1-git-send-email-mst@redhat.com> <1413965859-7698-3-git-send-email-mst@redhat.com> <54577D59.2010306@redhat.com> In-Reply-To: <54577D59.2010306@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PULL v2 2/9] well-defined listing order for machine types List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laszlo Ersek Cc: Peter Maydell , Eduardo Habkost , Marcel Apfelbaum , "Michael S. Tsirkin" , qemu-devel@nongnu.org, Anthony Liguori , Paolo Bonzini , David Gibson Am 03.11.2014 um 14:04 schrieb Laszlo Ersek: > On 10/22/14 10:18, Michael S. Tsirkin wrote: >> From: Laszlo Ersek >> >> Commit 261747f1 ("vl: Use MachineClass instead of global QEMUMachine >> list") broke the ordering of the machine types in the user-visible out= put >> of >> >> qemu-system-XXXX -M \? >> >> This occurred because registration was rebased from a manually maintai= ned >> 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, allo= wing >> machine types to be "clustered". Introduce a comparator function that >> establishes a total ordering between machine types, ordering machine t= ypes >> 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 decreas= ing >> 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 refi= ned >> 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-i= 440fx-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-i= 440fx-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 Cort= ex-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 Cort= ex-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=3D1145042 >> Signed-off-by: Laszlo Ersek >> Reviewed-by: Michael S. Tsirkin >> Signed-off-by: Michael S. Tsirkin >> Reviewed-by: Paolo Bonzini >> Reviewed-by: Marcel Apfelbaum >> Acked-by: David Gibson [...] >=20 > 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 --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg