From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:42209) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U1Y2N-00022g-2W for qemu-devel@nongnu.org; Sat, 02 Feb 2013 03:01:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U1Y2L-0005tR-J6 for qemu-devel@nongnu.org; Sat, 02 Feb 2013 03:01:22 -0500 Received: from cantor2.suse.de ([195.135.220.15]:59999 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U1Y2L-0005tI-9z for qemu-devel@nongnu.org; Sat, 02 Feb 2013 03:01:21 -0500 Message-ID: <510CC7C9.4060006@suse.de> Date: Sat, 02 Feb 2013 09:01:13 +0100 From: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= MIME-Version: 1.0 References: <1359765428-27805-1-git-send-email-afaerber@suse.de> In-Reply-To: <1359765428-27805-1-git-send-email-afaerber@suse.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH qom-cpu-next v3 0/4] target-i386: X86CPU subclasses List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: blauwirbel@gmail.com, imammedo@redhat.com, ehabkost@redhat.com, anthony@codemonkey.ws, Richard Henderson Am 02.02.2013 01:37, schrieb Andreas F=C3=A4rber: > Hello, >=20 > Long announced, here it is after the freeze: My 3rd attempt at CPU subc= lasses. > v3 is closer to v1 again, slimmed down not to touch x86_def_t much. >=20 > It was noticed that in theory a QOM class enumeration could lead to the= host > CPU class_init running before kvm_init(). My proposal is to make the cl= ass_init > reentrant and to re-run it from target-i386's kvm_arch_init() if necess= ary. > Similar to target-ppc, -cpu host code is placed into kvm.c rather than = cpu.c. >=20 > This conversion is an interim solution to get the code structured in a > QOM-friendly way and to reach a hot-plug friendly and cross-target alig= ned > CPU initialization. It decouples the work of introducing subclasses (to= hide > object initialization from cpu_init() and device_add) from any x86-inte= rnal > improvements (like Igor's global compat properties set from pc-x.y mach= ines). > The -cpu ? and QMP support is still based on array iteration. >=20 > Based on qom-cpu-next queue, which contains some cpu_init() cleanups al= ready. >=20 > Available for testing here: > git://github.com/afaerber/qemu-cpu.git qom-cpu-x86-subclasses.v3 > https://github.com/afaerber/qemu-cpu/commits/qom-cpu-x86-subclasses.v3 Required a trivial update for s/object_delete/object_unref/: qom-cpu-x86 Andreas > Regards, > Andreas >=20 > v2 -> v3: > * Instead of re-coding all CPU definitions as class_init functions, lea= ve > the built-in definition array in place and place x86_def_t in the cla= ss. > * Use kvm_arch_init() hook to assure class_init succeeds for -cpu host. > Suggested by Eduardo. >=20 > v1-> v2: > * Instead of turning x86_def_t into X86CPUInfo to initialize classes, > drop it completely and register types manually with customizable Type= Infos > * Use new list facilities for printing -cpu ? models > * Adopt new name scheme suggested by Eduardo and ideas from my alpha se= ries > * Keep short names in -cpu ? output for alignment reasons > * Merge cpu_x86_init() into cpu.c:cpu_x86_register() > * Append patch showing Haswell as subclass of SandyBridge >=20 > Cc: Anthony Liguori > Cc: Eduardo Habkost > Cc: Igor Mammedov > Cc: Blue Swirl > Cc: Richard Henderson >=20 > Andreas F=C3=A4rber (4): > target-i386: Move cpu_x86_init() > target-i386: Split command line parsing out of cpu_x86_register() > target-i386: Slim conversion to X86CPU subclasses > Remove cpudef_setup() hooks >=20 > arch_init.c | 7 - > bsd-user/main.c | 3 - > include/sysemu/arch_init.h | 1 - > linux-user/main.c | 3 - > target-i386/cpu-qom.h | 24 ++++ > target-i386/cpu.c | 326 ++++++++++++++++++------------------= -------- > target-i386/cpu.h | 3 - > target-i386/helper.c | 24 ---- > target-i386/kvm.c | 93 +++++++++++++ > vl.c | 7 - > 10 Dateien ge=C3=A4ndert, 247 Zeilen hinzugef=C3=BCgt(+), 244 Zeilen e= ntfernt(-) --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=C3=BCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=C3=B6rffer; HRB 16746 AG N=C3=BC= rnberg