Received: by 2002:a05:7412:b10a:b0:f3:1519:9f41 with SMTP id az10csp2832407rdb; Mon, 4 Dec 2023 08:38:31 -0800 (PST) X-Google-Smtp-Source: AGHT+IHfeuJTgoxPPM9b9DJikJv82zzo4em0q09UE1i0tHDgi/OLRhkgm0ToCXCkXRbS+YE+RCl+ X-Received: by 2002:a05:6a00:198b:b0:6ce:2732:573 with SMTP id d11-20020a056a00198b00b006ce27320573mr4697489pfl.36.1701707910798; Mon, 04 Dec 2023 08:38:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701707910; cv=none; d=google.com; s=arc-20160816; b=J/Z8A5TgZb6avEz/GcDr8JEq1BFsGHaLKBagDOr9bh8YJmyDkA8Og+OPoSV4KSDr77 JhCAana767SW3KSXH+RpCOXBqql/kqJEiCCdZe44KEJvT6IraUK+sBVCI60gfZTYBim5 CEd1Dn6hy5fEOconCIC/4eAFaIXa1uNKBQ2c1X9r+vNMx6EgEfUKAkV4SPRT3rNBQ4/O ih/V371HQ/22rFRh5Vxd9THFqKBINkVp9KtrZmRdxTlrg0xqKUYZ0Io6WRI9RySRXLn5 5YYM2jKE1AlhMeCs1TAq0ooxkE/+yim9XNFl3LVjlY3EKVwbChw1Gp/z/Eh1Png/gsIl 3sdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=qDk8VCjkq3XxlHbdv1HgLMD6AIZzaNXkLSxsVVtlfDU=; fh=ddOxdaP8Tnh1wfP0LtOlQoz5Ey3iCmGmnyYxvEIhbn0=; b=pKjjAlBaIbjbBa8jS8jSUKS0hZcWQk4N4SUE17CHFJdzKTk501s94/fWup5VWE3uuD aVlhEjSk4+7Tvm/c8UOHgxxyFME3tKInb1OGW6BfPyKNuFuBs9zB2M6BZVCBE+f8F8wT gcaoJhtolsAF/khgog0hV5bBIabc3gOkM4vF+8G9B2nxY/WSOHe/C4YcsrNBlTaQFYDF ZPQ97Zo9reS44Jp4PTfmYHnlKwaVc8ZMjmnnIrlX9fKrD3St61tIEiloNn+1/QWtx56r OiWN/V+SzT2pvMjbZ4CHYgijeQi/38+ayYAA4An6zRlVhNsp9FT+bH0nlvzLtMGG7qY3 G0OQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=ugkvx+DH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id j9-20020a056a00234900b006cbba705c9esi8145527pfj.207.2023.12.04.08.38.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Dec 2023 08:38:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=ugkvx+DH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 64C9880972B1; Mon, 4 Dec 2023 08:38:27 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234930AbjLDQiO (ORCPT + 99 others); Mon, 4 Dec 2023 11:38:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51844 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230350AbjLDQiM (ORCPT ); Mon, 4 Dec 2023 11:38:12 -0500 Received: from mail-pl1-x649.google.com (mail-pl1-x649.google.com [IPv6:2607:f8b0:4864:20::649]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 57D76B9 for ; Mon, 4 Dec 2023 08:38:19 -0800 (PST) Received: by mail-pl1-x649.google.com with SMTP id d9443c01a7336-1cfc4af9668so19938365ad.0 for ; Mon, 04 Dec 2023 08:38:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1701707899; x=1702312699; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=qDk8VCjkq3XxlHbdv1HgLMD6AIZzaNXkLSxsVVtlfDU=; b=ugkvx+DHP4h3V/3/qYu0LuPwb9lAqPV+dulupC0KssmtHBP1Tpaumi3PxrGrbcq9MK 9weBh3Z259AeuD+nMjPDM5uv7Fbun/MYMp7h3svlIwI19jvBxCFe1HaVVmOPY099BakM XzVliDimplLnuHzE7IX3BL8IW6tG0t4w31qHQy9TRQ52GpRSWJOfBndVP99NSqfPDCs2 PdyXMpm51l4WZEqqZEq1SdXEifBJ18N+ICz/E2DkKDU2iwKmBRYVdYtPqG2WI3UPqVXy zbAadWjmTop2y4iYkc7MvUU1tfJ/DUIFpoRHyR256ihxYV01KJGeOzc6n22oHr3cT7eT YhmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701707899; x=1702312699; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qDk8VCjkq3XxlHbdv1HgLMD6AIZzaNXkLSxsVVtlfDU=; b=ADpQ48d3HDyw7NXHkdkg0wxKUOQeirVF37mg1DTHg4R7SyH1WCwE7A33iy5ieG6Mld Rskh+Xw/BtIy3Oo33mcsOze9+8FLTfqboySnJD6T0/VgB1sIImLo272bVRmu8/6EQ2PF 1B2Js2t4DW+rPMiys7tngh6k1FAs8A7k6bzUPMBC1SB06cgTZNaxokWGeVqWo2RgiKH5 WyiWjdE8hpVqp3NzI8a+U2ZRYSEh8mjrVuWxS73NnPxW5oAs0xo70s2HattAhbEZW0PK 5bvDDq18uWfzpndAjRpG5Q6v6OZYbljgeY0HnAkyF++6RH3cBoW5VNEOB8C85W24Wt9e Zgxg== X-Gm-Message-State: AOJu0YwMLwqdnyzhpABTYyIFHK0advAOWUPjF+ZOV0PuFs7/ODkGuULe skS1U4FSQdv7nI/xmEF5aDGCWGZbzLg= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:8204:b0:1d0:71fc:b39c with SMTP id x4-20020a170902820400b001d071fcb39cmr163767pln.3.1701707898848; Mon, 04 Dec 2023 08:38:18 -0800 (PST) Date: Mon, 4 Dec 2023 08:38:17 -0800 In-Reply-To: <20231204150800.GD1493156@nvidia.com> Mime-Version: 1.0 References: <20231202091211.13376-1-yan.y.zhao@intel.com> <20231204150800.GD1493156@nvidia.com> Message-ID: Subject: Re: [RFC PATCH 00/42] Sharing KVM TDP to IOMMU From: Sean Christopherson To: Jason Gunthorpe Cc: Yan Zhao , iommu@lists.linux.dev, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, alex.williamson@redhat.com, pbonzini@redhat.com, joro@8bytes.org, will@kernel.org, robin.murphy@arm.com, kevin.tian@intel.com, baolu.lu@linux.intel.com, dwmw2@infradead.org, yi.l.liu@intel.com Content-Type: text/plain; charset="us-ascii" X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Mon, 04 Dec 2023 08:38:27 -0800 (PST) On Mon, Dec 04, 2023, Jason Gunthorpe wrote: > On Sat, Dec 02, 2023 at 05:12:11PM +0800, Yan Zhao wrote: > > In this series, term "exported" is used in place of "shared" to avoid > > confusion with terminology "shared EPT" in TDX. > > > > The framework contains 3 main objects: > > > > "KVM TDP FD" object - The interface of KVM to export TDP page tables. > > With this object, KVM allows external components to > > access a TDP page table exported by KVM. > > I don't know much about the internals of kvm, but why have this extra > user visible piece? That I don't know, I haven't looked at the gory details of this RFC. > Isn't there only one "TDP" per kvm fd? No. In steady state, with TDP (EPT) enabled and assuming homogeneous capabilities across all vCPUs, KVM will have 3+ sets of TDP page tables *active* at any given time: 1. "Normal" 2. SMM 3-N. Guest (for L2, i.e. nested, VMs) The number of possible TDP page tables used for nested VMs is well bounded, but since devices obviously can't be nested VMs, I won't bother trying to explain the the various possibilities (nested NPT on AMD is downright ridiculous). Nested virtualization aside, devices are obviously not capable of running in SMM and so they all need to use the "normal" page tables. I highlighted "active" above because if _any_ memslot is deleted, KVM will invalidate *all* existing page tables and rebuild new page tables as needed. So over the lifetime of a VM, KVM could theoretically use an infinite number of page tables.