From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:42370) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tl01u-0006pN-DA for qemu-devel@nongnu.org; Tue, 18 Dec 2012 11:28:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tl01p-0006LW-C5 for qemu-devel@nongnu.org; Tue, 18 Dec 2012 11:28:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:27726) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tl01p-0006LQ-2t for qemu-devel@nongnu.org; Tue, 18 Dec 2012 11:28:25 -0500 From: Eduardo Habkost Date: Tue, 18 Dec 2012 14:29:20 -0200 Message-Id: <1355848163-29846-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [PATCH 0/3] replace cpuid_*features fields with a featue word array (v3) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Riku Voipio , Blue Swirl , malc , Igor Mammedov , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Aurelien Jarno I would like to give emphasis to the following, from description of patch 3: This should also help avoid bugs like the ones introduced when we added cpuid_7_0_ebx_features. Today, adding a new feature word to the code requires chaning 5 or 6 different places in the code, and it's very easy to miss a problem when we forget to update one of those parts. See, for example: * The bug solved by commit ffa8c11f0bbf47e1b7a3a62f97bc1da591c6734a; * The fact that check_features_against_host() still doesn't check all feature words as it is supposed to. Changes in v3: - Removed the EXT2_PPRO_FEATURES patch - Rebased on top of: - afaerber's qom-cpu-next (commit cb97b7f), plus - Igor's "[PATCH 00/20 v2] x86 CPU cleanup (wave 2)" (but only patches 1-6 and 12) (See git tree below) - I tried to choose the patches that I find likely to be included soon, to try to reduce the need to rebase this patch again, but I know I probably haven't guessed correctly and a new rebase is probably going to be necessary. - Added "target-i386/cpu.c: remove last TAB character from the source" Changes in v2: - Rebased on top of: Subject: [PATCH 0/2] target-i386: move CPU object creation to cpu.c (v2) - Wrote a sed script that can be used to reproduce exactly the same changes from patch 3: https://gist.github.com/4271991 Git tree for testing: git://github.com/ehabkost/qemu-hacks.git x86-cpu-feature-array.v3 https://github.com/ehabkost/qemu-hacks/tree/x86-cpu-feature-array.v3 Original description: I was planning to implement this only after we finished the rest of the work, the changes are a bit intrusive. But now it looks like the CPUID feature bits are getting into our way (e.g. the feature word array will allow us to simplify the -cpu host and -cpu check/enforce code a lot, making it easier to convert that code to use CPU subclasses), so I decided to submit it now. Eduardo Habkost (3): target-i386/cpu.c: coding style fix target-i386/cpu.c: remove last TAB character from the source target-i386: replace cpuid_*features fields with a feature word array hw/kvm/clock.c | 2 +- linux-user/elfload.c | 2 +- linux-user/main.c | 4 +- target-i386/cpu.c | 586 ++++++++++++++++++++++++---------------------- target-i386/cpu.h | 30 ++- target-i386/helper.c | 4 +- target-i386/kvm.c | 5 +- target-i386/misc_helper.c | 14 +- target-i386/translate.c | 10 +- 9 files changed, 338 insertions(+), 319 deletions(-) -- 1.7.11.7