From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47891) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WICZO-0002mz-2J for qemu-devel@nongnu.org; Tue, 25 Feb 2014 02:36:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WICZJ-0004zK-01 for qemu-devel@nongnu.org; Tue, 25 Feb 2014 02:36:50 -0500 Received: from cantor2.suse.de ([195.135.220.15]:35569 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WICZI-0004z6-PN for qemu-devel@nongnu.org; Tue, 25 Feb 2014 02:36:44 -0500 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Tue, 25 Feb 2014 08:36:25 +0100 Message-Id: <1393313787-890-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH qom-cpu v10 0/2] target-i386: X86CPU subclasses List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Eduardo Habkost , Anthony Liguori , Igor Mammedov Hello, Here's my cleaned up version of slim x86 CPU subclasses. Second patch didn't get a lot of testing yet. Loading cpudef is still in main initfn since otherwise the host type would need to be relocated. Can be cleaned up as follow-ups. I wonder whether we are intentionally registering the host type even for !CONFIG_KVM? Instantiating it will then always lead to assertion failure. Available for testing here: git://github.com/afaerber/qemu-cpu.git qom-cpu-x86-subclasses.v10 https://github.com/afaerber/qemu-cpu/commits/qom-cpu-x86-subclasses.v10 Regards, Andreas v9 -> v10: * Cleaned up documentation comments. * Prepended patch to implement CPUClass::class_by_name(), rebased on it. * Cleaned up naming (..._class_init, ..._initfn, type vs. class). * Dropped duplicate white line. * Dropped unnecessary .abstract, .instance_size, .class_size fields. * Aligned model type registration with other targets by having the registration function operate on one model only. * Relocated cpudef-based types to after x86_cpu_load_cpudef(). * Moved assignment of cpu_def into cpudef-specific class_init. (went through various hands, last ehabkost's) v2 -> v3: * Instead of re-coding all CPU definitions as class_init functions, leave the built-in definition array in place and place x86_def_t in the class= . * Use kvm_arch_init() hook to assure class_init succeeds for -cpu host. Suggested by Eduardo. v1-> v2: * Instead of turning x86_def_t into X86CPUInfo to initialize classes, drop it completely and register types manually with customizable TypeIn= fos * Use new list facilities for printing -cpu ? models * Adopt new name scheme suggested by Eduardo and ideas from my alpha seri= es * 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 Cc: Eduardo Habkost Cc: Igor Mammedov Cc: Paolo Bonzini Cc: Anthony Liguori Andreas F=C3=A4rber (1): target-i386: Prepare CPUClass::class_by_name for X86CPU Eduardo Habkost (1): target-i386: X86CPU model subclasses target-i386/cpu-qom.h | 15 ++++ target-i386/cpu.c | 197 +++++++++++++++++++++++++++++++-------------= ------ 2 files changed, 138 insertions(+), 74 deletions(-) --=20 1.8.4.5