From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:34857) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TrDLz-0000Hh-RX for qemu-devel@nongnu.org; Fri, 04 Jan 2013 14:55:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TrDLr-00088r-Tw for qemu-devel@nongnu.org; Fri, 04 Jan 2013 14:54:52 -0500 Received: from mx1.redhat.com ([209.132.183.28]:55734) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TrDLr-00088C-L5 for qemu-devel@nongnu.org; Fri, 04 Jan 2013 14:54:47 -0500 From: Eduardo Habkost Date: Fri, 4 Jan 2013 17:56:16 -0200 Message-Id: <1357329382-20944-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [RFC 0/6] x86 CPU subclasses, v4 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Igor Mammedov , =?UTF-8?q?Andreas=20F=C3=A4rber?= This is a new RFC for the x86 CPU subclasses. This version handles the "host" subclass differently, and I believe this made the code much simpler. However, a few tricks were necessary: - To keep the "default_kvm_features" compat functions working (this shouldn't be necessary once we start using global properties for the compat code). - For the vendor property setting (because it depends on a kvm_enabled() check, that can't be made on class_init). I don't know how we will be able to convert that logic using global properties/defaults in the future. - To keep the original model names in the "-cpu ?" output, for compatibility. This series depends on multiple series: - pc-1.4 kvm_mmu_opt disable series I sent today; - -cpu "enforce" fix series I sent today; - A experimental rebased version of Igor's "wave 2" x86 CPU init cleanup. Because of the tricky dependencies, I recommend you use the git tree for testing: git://github.com/ehabkost/qemu-hacks.git x86-cpu-model-classes.RFC.v4 https://github.com/ehabkost/qemu-hacks/tree/x86-cpu-model-classes.RFC.v4 Eduardo Habkost (6): target-i386: Move CPU object creation to cpu.c target-i386: Make cpu_x86_create() get Error argument target-i386: Simplify cpu_x86_find_by_name() logic target-i386: Set feature string parsing results directly on CPU object target-i386: Move kvm_features/hypervisor initialization to cpu_x86_find_by_name() target-i386: CPU model subclasses include/sysemu/kvm.h | 3 + target-i386/cpu-qom.h | 26 + target-i386/cpu.c | 1548 ++++++++++++++++++++++++++++++------------------- target-i386/cpu.h | 4 +- target-i386/helper.c | 26 +- target-i386/kvm.c | 2 + 6 files changed, 988 insertions(+), 621 deletions(-) -- 1.7.11.7