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 07488C4332F for ; Tue, 12 Dec 2023 20:47:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 40F986B02F6; Tue, 12 Dec 2023 15:47:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3BF1D6B036A; Tue, 12 Dec 2023 15:47:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1F73D6B036B; Tue, 12 Dec 2023 15:47:06 -0500 (EST) 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 0737D6B02F6 for ; Tue, 12 Dec 2023 15:47:06 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id CFDF61A064A for ; Tue, 12 Dec 2023 20:47:05 +0000 (UTC) X-FDA: 81559350810.21.E21D153 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by imf24.hostedemail.com (Postfix) with ESMTP id 120F0180026 for ; Tue, 12 Dec 2023 20:47:03 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=bfIzQQUX; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of 3x8Z4ZQUKCGoaIOQaOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--sagis.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3x8Z4ZQUKCGoaIOQaOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--sagis.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702414024; a=rsa-sha256; cv=none; b=L4Nh3lj6/Pam6QWqkovJMBnajF2JbQPioDu6BYkDJXb9ozvqFk3spFWwI5r8MztBC2KfA6 Gmm2I7Llatn1RcD1qlOrAmLxRHDxuIQ8RADfz3ldXn3I6XM8IQ5clwYpNrs7t1nBceWHbB i5YJXqOwFOGw88hu0FwguH/Ezj/FE/Q= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=bfIzQQUX; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of 3x8Z4ZQUKCGoaIOQaOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--sagis.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3x8Z4ZQUKCGoaIOQaOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--sagis.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702414024; 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:references:dkim-signature; bh=ir7Qh8CW4lvS6Nb/8/FOXimO+77Lwly2G5VfmqeIAwU=; b=IoE4RddDfULnNGOLRHJepivZHixvEDQCClhtDvHQYZ6dvgYvMy8b4nBi0EUoGxdmG9PuCv 4E+h7DerxnLomlRV05lkoM3/m65qIbo7TcdMQtNg9jvqPmsQJFbh+Fzt4TzQ+FLxmtuI6D cKeA8PrnJHS7C3Ag6Vm2pqO60204U+Q= Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-5e1e74d9d0eso8076187b3.1 for ; Tue, 12 Dec 2023 12:47:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1702414023; x=1703018823; darn=kvack.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=ir7Qh8CW4lvS6Nb/8/FOXimO+77Lwly2G5VfmqeIAwU=; b=bfIzQQUXiGrOFwADtGGtMHNAo2uaHrw0oNQOqaMlKeJ1Yy8fnOIp+H7/OHK8SbU4uA X5AA0hRmwxKnRjs2zMAa3FysQ0D2RisgEk+fhFJD5DKrtHnWJ5hEFtKjSyxPzuI8JBb6 dnVFeScpAJu6+/W4+bpAk/n8tYZ1RIJ52uKUNsqzK+c2dN53NCgB/RTqM3h8k7vIXPek logcPF6on5L4Qg4Vy2ElXuGr4RtamVpGISzqQcWFRsYAThrtEd6Q/V/XYuBLkIA5cLvr obxJIm3i/3QaRIQxP1xfmLmXlpHhTwo5tgFP+CAvMu4bBUbwlMJbxh88a6UMl3F1d9Hj Wfiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702414023; x=1703018823; 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=ir7Qh8CW4lvS6Nb/8/FOXimO+77Lwly2G5VfmqeIAwU=; b=WpukB8XLCY+RMISK304bDqAi48mqttdVu0NYnOqQ4POnEQH+18i9nu9hxsRX4tZmcY x+98M0/OiNw+Fd0TGOWthyCtD69Y9asie53AGKa9f7nUkImLBc8DdX6uZHLpNlTQ4bpM a0XMu4Y8gvp+GpV9auxHTncwbzV0A4uR57jsgAC01HwnmeskAwYJ3ntWQ94vYutkCREG cjmMUavjlwki26MovVkvEPfo4/OZyXDg5i1r3Epj2KUOEVfeHkCH2w4Q0NYnjnKfIWph KLuIH9tQ2AjcNVrw8x7mTqSYSEEANawvsgKEdmqGnDPssSGNbw9qbq4WGt186j7FfZpo spNw== X-Gm-Message-State: AOJu0Yyrm38EMJoOPqfGfA9E3KLTwStwawd92pyFEVCca5kMrPfOlFTH Q86U7cD/iQ0r757uA9uYvoLxHOi65Q== X-Google-Smtp-Source: AGHT+IFD5ajTV8O858cXODhPLGEEFN7xEKYfb0cjWPaPFQbSpbsFud7FYSS4rJTN/cV8ArjTn5X1GoxmxA== X-Received: from sagi.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:241b]) (user=sagis job=sendgmr) by 2002:a25:cb55:0:b0:dbc:b2d4:4793 with SMTP id b82-20020a25cb55000000b00dbcb2d44793mr34903ybg.6.1702414023009; Tue, 12 Dec 2023 12:47:03 -0800 (PST) Date: Tue, 12 Dec 2023 12:46:18 -0800 In-Reply-To: <20231212204647.2170650-1-sagis@google.com> Mime-Version: 1.0 References: <20231212204647.2170650-1-sagis@google.com> X-Mailer: git-send-email 2.43.0.472.g3155946c3a-goog Message-ID: <20231212204647.2170650-4-sagis@google.com> Subject: [RFC PATCH v5 03/29] KVM: selftests: Store initial stack address in struct kvm_vcpu 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" X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 120F0180026 X-Stat-Signature: hqbpu75ce3wxgya5rdydfpoo9hyemftk X-HE-Tag: 1702414023-594623 X-HE-Meta: U2FsdGVkX18DUhyyFods32ufAU99Iy8WMe7ULIH58dZe1uHuplppP+JfR2jCJLHdpDCxdkQXSbvXG4Sf6WtpK3Ik7zHRhXHojIMh0v0urJOgNjbkc+NSOWNZIZeSq8DqKsGs19POBUj9ovfH10YNCF33UyxjJBWrzpoL0p42tsdt/DrRaJ6I7deA2dYtC6znQEnEbaJTAkjrsp1ejd1xL4SKdtGHjS2Gbi/WQuhdoB1s7hM7g3XXtM1x4EN6NPjqa8gumDah66KlSvvgrL5Uk7wzJk1dfviyKJ7LhiMmAWOc1L7jDBDZnaubsW7vQE6ZT5eMLFgfokkjEPVIvKGtJbppFWlugUp4TJ08rUj0bwE1rCqdavxB7nZMLe/tfHi3Y9FnyFWAP2B6f7CZzp8PFP6+EYe/A7CvlFBluPCyo7aGN/fGCMRM9dczlCGX7wVxK+KqO9jyWPenQDF1FiOk4PJY4G915zRswCegtn34SbRhHT8IAqhc72oopEQuY1K4emnfar8DP+GFueksaDcknJVLFSqOOT6aIRJWsVlKW4nA035VxYqpvJWdSgLt7B8b0nvvbI075Hj9LWWNN+Fg1JEKH/9fvjqFKT/PmUq9rT7sN8Ad9wPlxzNaqeiaTlhKwK2QRyeL/YD1WeDWN9r2ZTG7k30hyV1genxzx7WAAjDYF4kJws8r09nkhm+FMH1aJfUuWT4DnG0Jkzh322aUkQrBrV+FMxZIaMnCu2iSG6mNOZPSZmwJyzAhIL3/70wDRtK0qn+ApZf6W+D7p5k1em+N/ptbHPeCRJMYeOxDXHP4QbJcP/oQcQDF1wVPHfy+5Jgx19CkKJWWGhVu4L+V77abGpPEphV8QJnJHAmB0Wb+ri1ZE1EWJgt3Ywz4WaO/fr2tM3E0H+YlieXh2uPQ5MZRpg7cbTNEDuZxt4fTKej19sSxfH9RkOQU7+g5fqgLzZCVhAu68kK/jXHb3Bq H1r0FxuH OQD4MOAtfJMFw+Eb+/ToU46bJDWkF7bwwYfzxI9JyASG8q8J5lovZINfQI1j9uy3TpzyFteW3u6jzw/cesjbVXP8suzfhEM/pR7ulU9zKQszom2BDfT20O2OV7Yd4B6QRYgNv3V8q5IWvE3jTQ4S29rC7bseqpMyDdPU04RdQUzqOqaZWco7WbDAFDk1DWBDA8w3QNr1uHLSphnO6gn1fx0F3yL1lRh+4sPVZ4sNbrBn9+wVvYYMExe1tBBa7ecnH0qIlArYDJ2E9m+8Cow40apoJERpWaaP8MeHla60EXJ+SYEvxocg5AcoUUkmmFMzBxD92NgziL6xrOMXdWwKfGL/CwuMZ7dToo0hijoTQ0TIaenKLM67V7kBUBtsY8AqjUsjU1xBKsnm4SfNz+CyYeeuG1mYXxnQzcpCpKQXd2r61BgjcFLrC5LMmdMVpWiejI6M/L9YtC5nyFzPK51wBXOV0bq0b0DFb2ub0nwuJpjzWkR5HrHK5nwY9de0cG6oJdMgtkTlgqwdJf+ouhuCUquug1ZqJT+Ys5dpT5b58WadNR1DisINieYlG/1pLNqAtOccy39bklnzXaEWgM+6zmgAmZM5xseAYt3npvPzozK6NcJ0SmQ/R442D47b1dkEHpoCznz/ymPkY1C5nCGw4jtq+IZwctwyhMIbbKGjK2+/MJst+tg2pmo8rmQ== 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: From: Ackerley Tng TDX guests' registers cannot be initialized directly using vcpu_regs_set(), hence the stack pointer needs to be initialized by the guest itself, running boot code beginning at the reset vector. We store the stack address as part of struct kvm_vcpu so that it can be accessible later to be passed to the boot code for rsp initialization. Signed-off-by: Ackerley Tng Signed-off-by: Ryan Afranji Signed-off-by: Sagi Shahar --- tools/testing/selftests/kvm/include/kvm_util_base.h | 1 + tools/testing/selftests/kvm/lib/x86_64/processor.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/include/kvm_util_base.h b/tools/testing/selftests/kvm/include/kvm_util_base.h index c2e5c5f25dfc..b353617fcdd1 100644 --- a/tools/testing/selftests/kvm/include/kvm_util_base.h +++ b/tools/testing/selftests/kvm/include/kvm_util_base.h @@ -68,6 +68,7 @@ struct kvm_vcpu { int fd; struct kvm_vm *vm; struct kvm_run *run; + vm_vaddr_t initial_stack_addr; #ifdef __x86_64__ struct kvm_cpuid2 *cpuid; #endif diff --git a/tools/testing/selftests/kvm/lib/x86_64/processor.c b/tools/testing/selftests/kvm/lib/x86_64/processor.c index f130f78a4974..b6b9438e0a33 100644 --- a/tools/testing/selftests/kvm/lib/x86_64/processor.c +++ b/tools/testing/selftests/kvm/lib/x86_64/processor.c @@ -621,10 +621,12 @@ struct kvm_vcpu *vm_arch_vcpu_add(struct kvm_vm *vm, uint32_t vcpu_id, vcpu_init_cpuid(vcpu, kvm_get_supported_cpuid()); vcpu_setup(vm, vcpu); + vcpu->initial_stack_addr = stack_vaddr; + /* Setup guest general purpose registers */ vcpu_regs_get(vcpu, ®s); regs.rflags = regs.rflags | 0x2; - regs.rsp = stack_vaddr; + regs.rsp = vcpu->initial_stack_addr; regs.rip = (unsigned long) guest_code; vcpu_regs_set(vcpu, ®s); -- 2.43.0.472.g3155946c3a-goog