From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v3 0/6] target-i386: Make most CPU models work with "enforce" out of the box Date: Sat, 04 Oct 2014 00:16:43 +0200 Message-ID: <542F204B.9070606@redhat.com> References: <1412365191-22858-1-git-send-email-ehabkost@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: Aurelien Jarno , kvm@vger.kernel.org To: Eduardo Habkost , qemu-devel@nongnu.org, =?windows-1252?Q?Andreas_F=E4rber?= Return-path: Received: from mail-wg0-f48.google.com ([74.125.82.48]:42095 "EHLO mail-wg0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758052AbaJCWQs (ORCPT ); Fri, 3 Oct 2014 18:16:48 -0400 Received: by mail-wg0-f48.google.com with SMTP id k14so1271028wgh.7 for ; Fri, 03 Oct 2014 15:16:47 -0700 (PDT) In-Reply-To: <1412365191-22858-1-git-send-email-ehabkost@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Il 03/10/2014 21:39, Eduardo Habkost ha scritto: > Changes v2 -> v3: > * None. This is just a rebase against latest qemu.git master (commit b00a0dd) > > Changes v1 -> v2: > * Commit message and comment changes. > * Update compat code to change pc-*-2.1, not pc-*-2.0. > * Added patch to disable SVM by default in KVM mode. > > Most of the bits that make "enforce" breaks were introduced in 2010 by commit > 8560efed6a72a816c0115f41ddb9d79f7ce63f28. The intention behind that commit made > sense, the only problem is that we can't guarantee guest ABI stability across > hosts if we simply rely on trimming of CPU features based on host capabilities. > > So, this series remove CPUID bits from the CPU model definitions so they become > defaults that: 1) won't unexpectly stop working when we start using the > "enforce" flag; 2) won't silently break the guest ABI when TCG or KVM start > supporting new features. > > There's only one non-trivial case left: the qemu32/qemu64 models. The problem > with them is that we have conflicting expectations about it, from different > users: > > TCG users expect the default CPU model to contain most TCG-supported features > (and it makes sense). See, for example, commit > f1e00a9cf326acc1f2386a72525af8859852e1df. > > KVM users expect the default CPU model to be a conservative choice which will > work on most host CPUs (and will only contain features that are supported by > KVM). > > We could solve the qemu32/qemu64 issue by having different defaults for TCG and > KVM. But we have existing management code (libvirt) that already expects qemu32 > or qemu64 to be the default, and changing the default would break that code. I > will send an RFC to address that later. > > Cc: Aurelien Jarno > Cc: Paolo Bonzini > Cc: kvm@vger.kernel.org > > Eduardo Habkost (6): > pc: Create pc_compat_2_1() functions > target-i386: Rename KVM auto-feature-enable compat function > target-i386: Disable CPUID_ACPI by default on KVM mode > target-i386: Remove unsupported bits from all CPU models > target-i386: Don't enable nested VMX by default > target-i386: Disable SVM by default in KVM mode > > hw/i386/pc_piix.c | 22 ++++++++++++++++++---- > hw/i386/pc_q35.c | 18 ++++++++++++++++-- > target-i386/cpu.c | 42 ++++++++++++++++++++++++++++-------------- > target-i386/cpu.h | 3 ++- > 4 files changed, 64 insertions(+), 21 deletions(-) > Andreas, are you picking up this? Paolo