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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A379C41535 for ; Tue, 12 Dec 2023 20:47:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 93E3B6B00F8; Tue, 12 Dec 2023 15:47:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8EDE36B0103; Tue, 12 Dec 2023 15:47:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 78FE66B02ED; Tue, 12 Dec 2023 15:47:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 667B36B00F8 for ; Tue, 12 Dec 2023 15:47:01 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 195E9C0AA9 for ; Tue, 12 Dec 2023 20:47:01 +0000 (UTC) X-FDA: 81559350642.19.42E7262 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.202]) by imf12.hostedemail.com (Postfix) with ESMTP id 4A2B740007 for ; Tue, 12 Dec 2023 20:46:59 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=iTEEPpop; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of 3wcZ4ZQUKCGQUCIKUIQQING.EQONKPWZ-OOMXCEM.QTI@flex--sagis.bounces.google.com designates 209.85.215.202 as permitted sender) smtp.mailfrom=3wcZ4ZQUKCGQUCIKUIQQING.EQONKPWZ-OOMXCEM.QTI@flex--sagis.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702414019; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=/7dr6LesSd6J0D4aMekJuWGTOXlB00/XOYyVR4kkX9o=; b=zXe9JHnSukDWTM7U1MO7sQmSpk6NtMIXunZnkwecTFnU0QINWdQfQwOkz8Ul0RCDZTFY7v dwnCmRLPcT5rKuEQo/2lQRQ229pe8PibAXYBZSl/Vqf+fM0wU3BsuuE4x0SqSnbn1P4E9Y 8X1Ypk/uNuVAEPqInV9PMTgyP2vVRhI= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=iTEEPpop; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of 3wcZ4ZQUKCGQUCIKUIQQING.EQONKPWZ-OOMXCEM.QTI@flex--sagis.bounces.google.com designates 209.85.215.202 as permitted sender) smtp.mailfrom=3wcZ4ZQUKCGQUCIKUIQQING.EQONKPWZ-OOMXCEM.QTI@flex--sagis.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702414019; a=rsa-sha256; cv=none; b=E0hLPaMdrtgM5Iy2ZNtk2dlLXfi8r4qoGI6y0Bj9rHgQys/qsB9ld+te4AU2dJrYzS9jfR 6bgvACEPn7FNKwneZQFJjSwwU9isjUAW24AYdRQe9ww3yyGxJXOExEEb4c9/ZS2mf87EMy aQ+RAK/ZsSrtcI4LgukjlJFj4X0J1Y0= Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-5be39dea00dso2271043a12.3 for ; Tue, 12 Dec 2023 12:46:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1702414018; x=1703018818; darn=kvack.org; h=content-transfer-encoding:cc:to:from:subject:message-id :mime-version:date:from:to:cc:subject:date:message-id:reply-to; bh=/7dr6LesSd6J0D4aMekJuWGTOXlB00/XOYyVR4kkX9o=; b=iTEEPpopw3kZ8S/fLIMY6F1wOcSU69Ru325IUwbuR3KpFzQnKG/AmsVNqunvz60gbB eB+2pTUDyeELOTu65GNa4wywqzVkjFNQ7MYihtIw/HqPOBxD1gUFiqr7MWbM/qNIwGBT Cc6mv616FCWKog7Y2wHPqwtu7AgevR6qc9/2zv+ERdckYuy6/Eduhz2KvOP478GCXOxI DdZ6SNkRlrj6c4RQMWx5yYv/3e49ACb7f/WmrzhZxD9eoY4XN82q9J+6ncEf3Kxrtg1y 0z+TNnAta9U1atm12QPZx0xCx3qQejqcRLFqstjHtCQVBlbrpBuROiZl0oQiZ/qwlz4e bc5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702414018; x=1703018818; h=content-transfer-encoding:cc:to:from:subject:message-id :mime-version:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/7dr6LesSd6J0D4aMekJuWGTOXlB00/XOYyVR4kkX9o=; b=kF81/3Cslv3W1+Q0hCmTnVQZOnuF9V0Zs78MpyMym+1ypJKWN3rpL6bp2HHQA09haZ a06OY1LqWW98xqc/0Ekc5ZzgO7xgmuMAA3cmA8tZI5ALmBGlJD38e38tbeNzZSF7OJNs gIM9/XqiCiSxW2BqfTWOiKDjVgotGxH7Yp98VEgiP8pLsv3RCPuRbkyIsyoJqKgCpmCS U8LGjLituLhfU17q/xbH9A7k/pdCFGZnHtnRwhlkZZ76DxaMJSoQSyxWPQua/+rMqdDq 5hUgBGcFGFbNz4b8ngFGjHTKhAiBT1q+IvDGHRG7Xqw1P3xHVHUT7NZczwyTMHzbcN+/ UE2g== X-Gm-Message-State: AOJu0YyAOa6/q7sN15jEc2U2HFm07w+BnXJfPp4l0ZWKtyRIOriAqCRm W2lKTm1WyOKZryK2cQouoGsPsF7N2w== X-Google-Smtp-Source: AGHT+IEfcl1fpngZWor1J98CNRcmX2Te7PCQfMM2bpoJPUISib0v7zYmBv6kzfWIo6aCYm3tYDv2DEXrEA== X-Received: from sagi.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:241b]) (user=sagis job=sendgmr) by 2002:a17:903:32c8:b0:1d0:902c:e834 with SMTP id i8-20020a17090332c800b001d0902ce834mr53461plr.12.1702414017857; Tue, 12 Dec 2023 12:46:57 -0800 (PST) Date: Tue, 12 Dec 2023 12:46:15 -0800 Mime-Version: 1.0 X-Mailer: git-send-email 2.43.0.472.g3155946c3a-goog Message-ID: <20231212204647.2170650-1-sagis@google.com> Subject: [RFC PATCH v5 00/29] TDX KVM selftests From: Sagi Shahar To: linux-kselftest@vger.kernel.org, Ackerley Tng , Ryan Afranji , Erdem Aktas , Sagi Shahar , Isaku Yamahata Cc: Sean Christopherson , Paolo Bonzini , Shuah Khan , Peter Gonda , Haibo Xu , Chao Peng , Vishal Annapurve , Roger Wang , Vipin Sharma , jmattson@google.com, dmatlack@google.com, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4A2B740007 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: qhgfh6zsxxgwojxbbu51m15w6kaibzn8 X-HE-Tag: 1702414019-677719 X-HE-Meta: U2FsdGVkX19siXxLBqYw4JopKyKyEqlqvrLNgjFEv4xVVpt016KYoCUCSVswZbfsDN/dc4DNOXu8o6GVbSGqVi5W2mYG9xcM+JVTKkznAwmb/8PN61Mhni/zCW6oSzI0iWFjAGyf2aSu4Ha/QjD9udXg4LpHkOmGV5rYExpCCUoINMU37fWUdf4O9zFKCcIcmpp+VtHSry/Mu34dm9QEfAUiGPpRmfQifaOziLl11P1G6vZD3fKbD2k+cx5UlCszlTDs8KFRXNgFAqFP1fG6kwwfXPOoo/kXtWnP4+MKM2BPyNqC+/+SATBj1DXZ59h/DMLqwfF95ip5m1GDWctHkk15agVH5v0x7+3VI2xI5QLqhVV/5Kf8Q4yQje07aH1YtUPefvpU1v918UxA15BI12qQ09mlOhNpbcjb6eLhxAE0Ymwl+niAVRc0wCpUMTDXszyeTG1iR0it47wVy0m7SsoSiK4gXPjbxJTgsZ9G0d2Usp1gljo+2HHIbI516ymtxzbo+8SbD1DclxsnB7fU0LHf60hQ1yL4WBO2/oD2GAJLdALQhgggbNqVD4WOvHRcKwaCu3F9X/p6aP8EM7s/HZ++Iav324FIcs8PL5C6+7CRldmFwCuTeWSirco6um+ndt8gEO5hJL5QINqCVjNn/NsccGjzC1fz+RSTnHt+hksYsImrpIJo7uXsOVKFwLcWt9XwqxaUdLY1cfbRC37y831R9oWPoSAEUItYJip0abRbswUwVTzKKDFPNOE7sduCrxTXo0C9nxqqWLRUOQm81zlf8WsdfxB/ubOeOy2pL5A19+vL0kLiYGtmM6jRCNxs4B8scQmimmljLvNRvlQR/ss2NXtsKx5m9ucUV1+pbaVwviWzTuq1Q4Tp6+aWltjlZTNOKFIzxEmyaBjFT8eGxq30HBmT9yZU7zBBkPbuylmNXkl9Te87+tSpsVs0ggs6daOJdfnOYqG/xEVm2y7 JD3lCwE4 yomQgPmJzN/vWNFVwSMEWgq5dloR7q5H5kS1kEftveqOGV7oJTSSqGSlEtC+Bl0TWN0QLgNXhYtoMKRAKTDGeYD/LSnBq3O8/2xDxL/aFAjQ6SM7ftJ7DATsO+VZQi01LZSGNt+0XBKd5T9ycNc+5nJZGLmBTUX6eilCn0PysrdkzUsvX2UnZe/+8y7wHH3yc4m766kKvclug3p/P83QzIoX3QD3oxpqZG4t7BQGelYI1tn8NuE31a3J/wj9pXwf1DnVesN8D6pXVOd2fxZMjfFqaKMBijZ7qMaNxGoCIXSiUpQakIBsII62mprRWjmNQx3u3witVmCGe+Kw0JiYZf+ZzmGy3cQ47SepxTa2f7FbhZ9+2SP7twE7CuLfw9c67EOsfzwku+o9vSVz0Un5+ZX4Ul8IAyh76gJTeImfO5hMYFz733SIcCJfdoQqo8cppk7MgLajLQlr2f6DqdhmEpxzDScr6AWQNQ+f8AkUzv22MB20BAGKVvE3Mov8IcQUUF0uopr2zAVOSwRfMTjlOCqx1PqY45uppFH6vy3qGlv/ik/QXVjnt96xtMLh3sgWugubOtks7aQ7sZAxGYTiH2rI096kGa7RB9Mvoes04OVujq/O+UAy8y71c8AfvAL9EdEPAqjPVNb2fyLnGr/EXx+x3dpjzL2vVGsHltw7lbv+J8iWVksxodM8BXegjxuadejr0fOjUJt/I6qQPICRr6TpMDxnP9Onf621yKOVluGpiB6QlMkRNoRE/O1PVHGf1Dlfac648tCQOqhwrArrn+xpPRendWb5wn14m44LmRW39nkUTAqjMU/xcf4Ntct3c7VruoFudWWFcciEm7Cy/BoP94g== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hello, This is v4 of the patch series for TDX selftests. It has been updated for Intel=E2=80=99s v17 of the TDX host patches which w= as proposed here: https://lore.kernel.org/all/cover.1699368322.git.isaku.yamahata@intel.com/ The tree can be found at: https://github.com/googleprodkernel/linux-cc/tree/tdx-selftests-rfc-v5 Changes from RFC v4: Added patch to propagate KVM_EXIT_MEMORY_FAULT to userspace. Minor tweaks to align the tests to the new TDX 1.5 spec such as changes in the expected values in TDG.VP.INFO. In RFCv5, TDX selftest code is organized into: + headers in tools/testing/selftests/kvm/include/x86_64/tdx/ + common code in tools/testing/selftests/kvm/lib/x86_64/tdx/ + selftests in tools/testing/selftests/kvm/x86_64/tdx_* Dependencies + Peter=E2=80=99s patches, which provide functions for the host to allocate and track protected memory in the guest. https://lore.kernel.org/all/20230110175057.715453-1-pgonda@google.com/ Further work for this patch series/TODOs + Sean=E2=80=99s comments for the non-confidential UPM selftests patch seri= es at https://lore.kernel.org/lkml/Y8dC8WDwEmYixJqt@google.com/T/#u apply here as well + Add ucall support for TDX selftests I would also like to acknowledge the following people, who helped review or test patches in previous versions: + Sean Christopherson + Zhenzhong Duan + Peter Gonda + Andrew Jones + Maxim Levitsky + Xiaoyao Li + David Matlack + Marc Orr + Isaku Yamahata + Maciej S. Szmigiero Links to earlier patch series + RFC v1: https://lore.kernel.org/lkml/20210726183816.1343022-1-erdemaktas@= google.com/T/#u + RFC v2: https://lore.kernel.org/lkml/20220830222000.709028-1-sagis@google= .com/T/#u + RFC v3: https://lore.kernel.org/lkml/20230121001542.2472357-1-ackerleytng= @google.com/T/#u + RFC v4: https://lore.kernel.org/lkml/20230725220132.2310657-1-afranji@goo= gle.com/ *** BLURB HERE *** Ackerley Tng (12): KVM: selftests: Add function to allow one-to-one GVA to GPA mappings KVM: selftests: Expose function that sets up sregs based on VM's mode KVM: selftests: Store initial stack address in struct kvm_vcpu KVM: selftests: Refactor steps in vCPU descriptor table initialization KVM: selftests: TDX: Use KVM_TDX_CAPABILITIES to validate TDs' attribute configuration KVM: selftests: TDX: Update load_td_memory_region for VM memory backed by guest memfd KVM: selftests: Add functions to allow mapping as shared KVM: selftests: Expose _vm_vaddr_alloc KVM: selftests: TDX: Add support for TDG.MEM.PAGE.ACCEPT KVM: selftests: TDX: Add support for TDG.VP.VEINFO.GET KVM: selftests: TDX: Add TDX UPM selftest KVM: selftests: TDX: Add TDX UPM selftests for implicit conversion Erdem Aktas (3): KVM: selftests: Add helper functions to create TDX VMs KVM: selftests: TDX: Add TDX lifecycle test KVM: selftests: TDX: Adding test case for TDX port IO Roger Wang (1): KVM: selftests: TDX: Add TDG.VP.INFO test Ryan Afranji (2): KVM: selftests: TDX: Verify the behavior when host consumes a TD private memory KVM: selftests: TDX: Add shared memory test Sagi Shahar (11): KVM: selftests: TDX: Add report_fatal_error test KVM: selftests: TDX: Add basic TDX CPUID test KVM: selftests: TDX: Add basic get_td_vmcall_info test KVM: selftests: TDX: Add TDX IO writes test KVM: selftests: TDX: Add TDX IO reads test KVM: selftests: TDX: Add TDX MSR read/write tests KVM: selftests: TDX: Add TDX HLT exit test KVM: selftests: TDX: Add TDX MMIO reads test KVM: selftests: TDX: Add TDX MMIO writes test KVM: selftests: TDX: Add TDX CPUID TDVMCALL test KVM: selftests: Propagate KVM_EXIT_MEMORY_FAULT to userspace tools/testing/selftests/kvm/Makefile | 8 + .../selftests/kvm/include/kvm_util_base.h | 30 + .../selftests/kvm/include/x86_64/processor.h | 4 + .../kvm/include/x86_64/tdx/td_boot.h | 82 + .../kvm/include/x86_64/tdx/td_boot_asm.h | 16 + .../selftests/kvm/include/x86_64/tdx/tdcall.h | 59 + .../selftests/kvm/include/x86_64/tdx/tdx.h | 65 + .../kvm/include/x86_64/tdx/tdx_util.h | 19 + .../kvm/include/x86_64/tdx/test_util.h | 164 ++ tools/testing/selftests/kvm/lib/kvm_util.c | 101 +- .../selftests/kvm/lib/x86_64/processor.c | 77 +- .../selftests/kvm/lib/x86_64/tdx/td_boot.S | 101 ++ .../selftests/kvm/lib/x86_64/tdx/tdcall.S | 158 ++ .../selftests/kvm/lib/x86_64/tdx/tdx.c | 262 ++++ .../selftests/kvm/lib/x86_64/tdx/tdx_util.c | 558 +++++++ .../selftests/kvm/lib/x86_64/tdx/test_util.c | 101 ++ .../kvm/x86_64/tdx_shared_mem_test.c | 135 ++ .../selftests/kvm/x86_64/tdx_upm_test.c | 469 ++++++ .../selftests/kvm/x86_64/tdx_vm_tests.c | 1319 +++++++++++++++++ 19 files changed, 3693 insertions(+), 35 deletions(-) create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/td_boot.= h create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/td_boot_= asm.h create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/tdcall.h create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/tdx.h create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/tdx_util= .h create mode 100644 tools/testing/selftests/kvm/include/x86_64/tdx/test_uti= l.h create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/td_boot.S create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/tdcall.S create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/tdx.c create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/tdx_util.c create mode 100644 tools/testing/selftests/kvm/lib/x86_64/tdx/test_util.c create mode 100644 tools/testing/selftests/kvm/x86_64/tdx_shared_mem_test.= c create mode 100644 tools/testing/selftests/kvm/x86_64/tdx_upm_test.c create mode 100644 tools/testing/selftests/kvm/x86_64/tdx_vm_tests.c --=20 2.43.0.472.g3155946c3a-goog