From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.4 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 41988C4338F for ; Wed, 4 Aug 2021 14:42:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 286F560F13 for ; Wed, 4 Aug 2021 14:42:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238252AbhHDOmp (ORCPT ); Wed, 4 Aug 2021 10:42:45 -0400 Received: from mga05.intel.com ([192.55.52.43]:48481 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238191AbhHDOmm (ORCPT ); Wed, 4 Aug 2021 10:42:42 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10065"; a="299522001" X-IronPort-AV: E=Sophos;i="5.84,294,1620716400"; d="scan'208";a="299522001" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2021 07:42:29 -0700 X-IronPort-AV: E=Sophos;i="5.84,294,1620716400"; d="scan'208";a="511998985" Received: from xiaoyaol-mobl.ccr.corp.intel.com (HELO [10.255.28.78]) ([10.255.28.78]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2021 07:42:23 -0700 Subject: Re: [RFC PATCH 1/4] KVM: selftests: Add support for creating non-default type VMs To: Maxim Levitsky , Erdem Aktas , linux-kselftest@vger.kernel.org Cc: Sean Christopherson , Peter Gonda , Marc Orr , Sagi Shahar , Paolo Bonzini , Shuah Khan , Andrew Jones , Ben Gardon , Peter Xu , David Matlack , Emanuele Giuseppe Esposito , Christian Borntraeger , Ricardo Koller , Eric Auger , Yanan Wang , Aaron Lewis , Jim Mattson , Oliver Upton , Vitaly Kuznetsov , Peter Shier , Axel Rasmussen , Zhenzhong Duan , "Maciej S. Szmigiero" , Like Xu , open list , "open list:KERNEL VIRTUAL MACHINE (KVM)" References: <20210726183816.1343022-1-erdemaktas@google.com> <20210726183816.1343022-2-erdemaktas@google.com> From: Xiaoyao Li Message-ID: <42a812a9-7f17-2a26-d289-1f921408a469@intel.com> Date: Wed, 4 Aug 2021 22:42:21 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/4/2021 10:24 PM, Maxim Levitsky wrote: > On Wed, 2021-08-04 at 14:09 +0800, Xiaoyao Li wrote: >> On 7/27/2021 2:37 AM, Erdem Aktas wrote: >>> Currently vm_create function only creates KVM_X86_LEGACY_VM type VMs. >>> Changing the vm_create function to accept type parameter to create >>> new VM types. >>> >>> Signed-off-by: Erdem Aktas >>> Reviewed-by: Sean Christopherson >>> Reviewed-by: Peter Gonda >>> Reviewed-by: Marc Orr >>> Reviewed-by: Sagi Shahar >>> --- >>> .../testing/selftests/kvm/include/kvm_util.h | 1 + >>> tools/testing/selftests/kvm/lib/kvm_util.c | 29 +++++++++++++++++-- >>> 2 files changed, 27 insertions(+), 3 deletions(-) >>> >>> diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h >>> index d53bfadd2..c63df42d6 100644 >>> --- a/tools/testing/selftests/kvm/include/kvm_util.h >>> +++ b/tools/testing/selftests/kvm/include/kvm_util.h >>> @@ -88,6 +88,7 @@ int vcpu_enable_cap(struct kvm_vm *vm, uint32_t vcpu_id, >>> void vm_enable_dirty_ring(struct kvm_vm *vm, uint32_t ring_size); >>> >>> struct kvm_vm *vm_create(enum vm_guest_mode mode, uint64_t phy_pages, int perm); >>> +struct kvm_vm *__vm_create(enum vm_guest_mode mode, uint64_t phy_pages, int perm, int type); >>> void kvm_vm_free(struct kvm_vm *vmp); >>> void kvm_vm_restart(struct kvm_vm *vmp, int perm); >>> void kvm_vm_release(struct kvm_vm *vmp); >>> diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c >>> index e5fbf16f7..70caa3882 100644 >>> --- a/tools/testing/selftests/kvm/lib/kvm_util.c >>> +++ b/tools/testing/selftests/kvm/lib/kvm_util.c >>> @@ -180,13 +180,36 @@ _Static_assert(sizeof(vm_guest_mode_params)/sizeof(struct vm_guest_mode_params) >>> * Return: >>> * Pointer to opaque structure that describes the created VM. >>> * >>> - * Creates a VM with the mode specified by mode (e.g. VM_MODE_P52V48_4K). >>> + * Wrapper VM Create function to create a VM with default type (0). >> >> Can we pass KVM_X86_LEGACY_VM (whatever name when it's upstreamed) >> instead of 0? > > To be honest I would prefer this to be called something like KVM_X86_STANDARD_VM, > or something. > > I don't think that normal unencrypted virtualization is already legacy, even if TDX > docs claim that. I'm not proposing to use this specific name introduced in TDX RFC series, but proposing to use the name defined in KVM in the future instead of hard-coded 0. Yes, KVM_X86_STANDARD_VM or KVM_X86_NORMAL_VM (proposed by Paolo) is better than KVM_X86_LEGACY_VM. > Just my personal opinion. > > Best regards, > Maxim Levitsky > >> >>> + */ >>> +struct kvm_vm *vm_create(enum vm_guest_mode mode, uint64_t phy_pages, int perm) >>> +{ >>> + return __vm_create(mode, phy_pages, perm, 0); >>> +} >>> + >> >> > >