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 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45603) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XaB9j-00017r-Cf for qemu-devel@nongnu.org; Fri, 03 Oct 2014 18:17:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XaB9d-0002YD-ML for qemu-devel@nongnu.org; Fri, 03 Oct 2014 18:16:55 -0400 Received: from mail-wg0-x22b.google.com ([2a00:1450:400c:c00::22b]:33190) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XaB9d-0002Vq-FA for qemu-devel@nongnu.org; Fri, 03 Oct 2014 18:16:49 -0400 Received: by mail-wg0-f43.google.com with SMTP id m15so2558523wgh.2 for ; Fri, 03 Oct 2014 15:16:47 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <542F204B.9070606@redhat.com> Date: Sat, 04 Oct 2014 00:16:43 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1412365191-22858-1-git-send-email-ehabkost@redhat.com> In-Reply-To: <1412365191-22858-1-git-send-email-ehabkost@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 0/6] target-i386: Make most CPU models work with "enforce" out of the box List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost , qemu-devel@nongnu.org, =?windows-1252?Q?Andreas_F=E4rber?= Cc: kvm@vger.kernel.org, Aurelien Jarno 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