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 08FF3C4345F for ; Fri, 12 Apr 2024 05:35:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 277156B0082; Fri, 12 Apr 2024 01:35:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 226E66B0087; Fri, 12 Apr 2024 01:35:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 116A46B0088; Fri, 12 Apr 2024 01:35:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E58516B0082 for ; Fri, 12 Apr 2024 01:35:02 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 54A0B80BDE for ; Fri, 12 Apr 2024 05:35:02 +0000 (UTC) X-FDA: 81999766044.09.DBDB7E3 Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) by imf18.hostedemail.com (Postfix) with ESMTP id A40911C0013 for ; Fri, 12 Apr 2024 05:34:59 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="wh/JpxrK"; spf=pass (imf18.hostedemail.com: domain of 3AsgYZgsKCC0JLTNaUNhcWPPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--ackerleytng.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=3AsgYZgsKCC0JLTNaUNhcWPPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--ackerleytng.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712900099; 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: in-reply-to:in-reply-to:references:dkim-signature; bh=40CL73wib6boENITVkOBpqP4qrDROFAeF098K7rCEZo=; b=UZFWLFb3iWE1jEWO+ihw4rgSl3v6GA/9xOu0Vmh2eTbImRGUjKihmbiVv+TcKQ20AtEMs6 4aF3kS5nEvM50HZOXbQDnJbhNMbfgcvZ2+hyqPIxxaWZ1ViM5YbidS71cmnakPjsCiNV0N Sm3WZq9j7YlKTO3wOKByYd0M3iaVwmw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712900099; a=rsa-sha256; cv=none; b=1hvQzsKVmb9xRFcuH4vtPgC36EgEXubqWVEPELeyEYWIb2quUX0df+4Z3CVMUVaO1eFymF A7S1ebIdkmTsiUofCKENArivdnobiK/NYMNnq5jSzC2WKVhkds7gVosypywdbYaBA25BNn 1W/KbMAdriV/f5wd7g404s3FknPUY+E= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="wh/JpxrK"; spf=pass (imf18.hostedemail.com: domain of 3AsgYZgsKCC0JLTNaUNhcWPPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--ackerleytng.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=3AsgYZgsKCC0JLTNaUNhcWPPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--ackerleytng.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-dd1395fd1bfso1047379276.0 for ; Thu, 11 Apr 2024 22:34:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1712900099; x=1713504899; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date:from:to :cc:subject:date:message-id:reply-to; bh=40CL73wib6boENITVkOBpqP4qrDROFAeF098K7rCEZo=; b=wh/JpxrKAo3XUNqgyDp8pf56VlMOlk06vH19oijEcwDiEZuzSNqztskUofNtpkQxfE iDE0Qy5VkiAKvN7gRkbEAh7S+/XOXMfvtH4s4kL5AprmhYPsn4wBn798htt1nNiuKSRc EUxh0itSdremUai1u9Aj/GlcB4nuBG1G2WcDYlcr1Qt7dpu0PRenznZ1wPtN+l4Du1so bps/CjKMReDyciWTeH4CL3fjGZ8MiqxJGj2hhg4EUa5gj0u1Tzr/OBsARSzABvFZNdfw hgMYkJtbofBALdv8lNy91mVh3ajGaGAxbuUvrBifWcmjoyAiTt46C1hCbPKfAGai0N5b yZ7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712900099; x=1713504899; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=40CL73wib6boENITVkOBpqP4qrDROFAeF098K7rCEZo=; b=kPR3kKLVrMAr4dnIOUx+gdaHcWnlMIMlg26p6LLQSqTIyPi+t9FAPpydtw/16hDVfs Pz+p9A9I95GifePc9b21SoOfeQta/TlU6UGYVGyzZuQDFd2TpACJJ4DSqpI2mXpnpjva wgD7t7D9s9Wh6O3HvoDKFNSBrkFbbc+1+PVSwxgkG7cxwxaclcxOrGDkL/mP5TBvNTZl dV0X2TK6jdf6ZPy2hdxLL5lMIKkwXACi0CwAI+ppW4e7vd/1UER6mJypKd9EjdpgqRaL c6eyRrwVLPOf70+W/TpCy2o8o/SOVC9RwyyzD6X6EQavbAUxEijJVvMlKtmdl+yazLgq 8Ylg== X-Forwarded-Encrypted: i=1; AJvYcCXk6fTEgqGUeXnjJC9f5On1tQVEFqfbXaTePVEq2PbKjkietu/fd7Cv3OSZ/iI6WIOM9KGPvfedwT2yTHU1Bae/3zM= X-Gm-Message-State: AOJu0YwwDSB3G4Z+J6vRHuH9wr0/XjNpUsERyurB2Q6uZlI+w6rVMoxN zl/2VFdGNc4h+L3ESfvt61aNeCyHtHONEbjIpkH9vpPts9UojyImIMZkqQWTcaDomsTkwK81c6g 4XAkbZ4KsF5Ljiwpf6RiKOg== X-Google-Smtp-Source: AGHT+IHBQ7oYt8rwDGfoTH5mMc+eE3PwbtEkoZpDVDKUDzWTMm/e3olIUnsS49ugB3YTyrfsMlcwC9w28DOEHyF/JA== X-Received: from ctop-sg.c.googlers.com ([fda3:e722:ac3:cc00:4f:4b78:c0a8:1223]) (user=ackerleytng job=sendgmr) by 2002:a05:6902:1002:b0:dc6:e5d3:5f03 with SMTP id w2-20020a056902100200b00dc6e5d35f03mr510040ybt.4.1712900098616; Thu, 11 Apr 2024 22:34:58 -0700 (PDT) Date: Fri, 12 Apr 2024 05:34:54 +0000 In-Reply-To: <3d69b44a-8542-4a11-b233-16487e980d54@intel.com> (dongsheng.x.zhang@intel.com) Mime-Version: 1.0 Message-ID: Subject: Re: [RFC PATCH v5 05/29] KVM: selftests: Add helper functions to create TDX VMs From: Ackerley Tng To: dongsheng.x.zhang@intel.com Cc: sagis@google.com, linux-kselftest@vger.kernel.org, afranji@google.com, erdemaktas@google.com, isaku.yamahata@intel.com, seanjc@google.com, pbonzini@redhat.com, shuah@kernel.org, pgonda@google.com, haibo1.xu@intel.com, chao.p.peng@linux.intel.com, vannapurve@google.com, runanwang@google.com, vipinsh@google.com, 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" X-Rspamd-Queue-Id: A40911C0013 X-Rspam-User: X-Stat-Signature: zmwebj9qppka6fagya4d5u49731sag5c X-Rspamd-Server: rspam03 X-HE-Tag: 1712900099-672174 X-HE-Meta: U2FsdGVkX1/r2fYr4nLRzCdKmKgzX1cXod2pITn9Kyc2zHSVKgkwhKlTdipR4q2t33XCZ9N15M1gJfPIHB+pdC/4T0rLIJVrpLRXCzFb/5Y+LeTftXbFDyJi/iPR5srhd3FkLfaT7Ht9sVQQ+fgD9409i2pW0qHlop5sECdhgSsN7tnpbFtFYqXR+IsBib9LOwBpFmLPWz2Q6Jk0bL4gWUfm6TZ2aqTElwxCrCK55M1mFObX/xrxQ+VZ9Znq/1EQML6SfswTc5tAOlTmzzSPzUVRk4BCfZBGcJ+ezO17qE0KiniaF6urvaWqZgoO8y676H1ABhit9J8nHH16tOCT3kwfj9mEaq5M/fHMchCFs8gSJpDsO+8B25uUDsxobL//X/K4EBBL0tyHAWiIZMQZWYPWR/Ckxpa1ZTsPFxRrExTWvzxTTTPkkK/nASK+cMroYwGldqQqN9qDqFyQy1GxQ5ch7QyrzLnI4IxcDFXL53dRI5y2BemO9TfgJfl+zNllVohvqYZhzhxFHHy/IyNc/UWEom5og9eGjTTJF+MvEFqICUzzHzon++olYVmlcxglvF9q2ny4mIISB2yUCjD/HYwTaTvR+GHK45jBiU1LL4ZvLjFTMt85n/kowXnVWwDLCtCNDCuvkxg/3iX034U7SmKOc58av5MK01ARjXiYvWzZJu8dbmmell2+pS4+GgE1ZtbO4mT6xSeS9IAq3MUHGaBjzJY7v/X1qXCnFALy3XUgjiPSk9ca3dCrmZI1bMeEOdt95pF0CKlUdawiOxZaStTrnv9Dn7aJv6QUf6FjpxxFrPlyee3P0MQfKN4MepI6xnyEiramBHjVtnoQza4L0wKzbXK0Mb6IJ7LiG45u8yBxXPuHQlYWhuH71iiCPLiueyHfG/iExTmSujPDkye2pinVJDTI9blgBAiSLcDGj636eyUmaZPU5ntWY3pd1R54dhqjaELF6uc60QrqK29 s8NoEQ74 3BHVqtXTHbSpDtVfl3Hu7TjUTLX7UlSArTwnsFA8XHNKyqC0wdJiVdCzcPPVq/3K1qPBkJ/apJwlSt6EqV0cmmna9S713Y5KdOA4N+m4ObahmF9Xiq1BqgGIC5/XLklSIX72vkU6uSlgERLg7VdbNGOoXEnIEmaI7ukSazI4byWBQC0cx/bSAobGGv7rqKaZklLBjGAURDX9zQX+yLzHGsJMnsFlJ3xRjZNlNwmmozw2aNa6qP8qJyZevf2Es7qZrAHlvoPczt3EVKQJhqadTVzoIrqNik+hkNmOYpDu8GUrSfUEV3HqaqGOqwXqPfckuaXQBAN3O2QQ6B5Y5UbO1WeRbTKRN5hoXDJEwRufjx/jR3THYnGCJ2voZ6Arn98F31FI+OOpNgkXEFVpB7o0Myzrfx2rgInTHvDz6xOBumIhX4sS/118gjB6xgvpu8O9HhJGP3Qv/Vfb1spF0wRG9TF0pYiNiQJEA7hHVOnEZVUVr5KZwlSeiLH57BAOilZH71Hshu4MIOTbTJaJuk6+8FQA5inQwEpqAxBUG4w6OqfXJUi1gt2TjGNXZIwWWi5R0ri/lMQVkjUjrm4Q= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000122, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Thank you for your other comments! >> >> +static void load_td_per_vcpu_parameters(struct td_boot_parameters *params, >> + struct kvm_sregs *sregs, >> + struct kvm_vcpu *vcpu, >> + void *guest_code) >> +{ >> + /* Store vcpu_index to match what the TDX module would store internally */ >> + static uint32_t vcpu_index; >> + >> + struct td_per_vcpu_parameters *vcpu_params = ¶ms->per_vcpu[vcpu_index]; > > I think we can use vcpu->id in place of vcpu_index in this function, thus removing vcpu_index > td_per_vcpu_parameters is used in the selftest setup code (see tools/testing/selftests/kvm/lib/x86_64/tdx/td_boot.S), (read via ESI) to access the set of parameters belonging to the vcpu running the selftest code, based on vcpu_index. ESI is used because according to the TDX base spec, RSI contains the vcpu index, which starts "from 0 and allocated sequentially on each successful TDH.VP.INIT". Hence, vcpu_index is set up to be static and is incremented once every time load_td_per_vcpu_parameters() is called, which is once every time td_vcpu_add() is called, which is aligned with the TDX base spec. vcpu->id can be specified by the user when vm_vcpu_add() is called, but that may not be the same as vcpu_index. >> + >> + TEST_ASSERT(vcpu->initial_stack_addr != 0, >> + "initial stack address should not be 0"); >> + TEST_ASSERT(vcpu->initial_stack_addr <= 0xffffffff, >> + "initial stack address must fit in 32 bits"); >> + TEST_ASSERT((uint64_t)guest_code <= 0xffffffff, >> + "guest_code must fit in 32 bits"); >> + TEST_ASSERT(sregs->cs.selector != 0, "cs.selector should not be 0"); >> + >> + vcpu_params->esp_gva = (uint32_t)(uint64_t)vcpu->initial_stack_addr; >> + vcpu_params->ljmp_target.eip_gva = (uint32_t)(uint64_t)guest_code; >> + vcpu_params->ljmp_target.code64_sel = sregs->cs.selector; >> + >> + vcpu_index++; >> +} >>