Received: by 2002:ab2:3350:0:b0:1f4:6588:b3a7 with SMTP id o16csp1988136lqe; Tue, 9 Apr 2024 06:44:28 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXG8PMpvlaAFZco5jyG/qIH6OJceU4kDmfL9mmwfJEZQQcg7VZfSWiy4NUtuFelK5gG2n74Eyra2s5qeGMYDo3G2XeiodUiQKbszjPtaQ== X-Google-Smtp-Source: AGHT+IFpLQaGs5KRL6RwP9dUrO1MIcOok1gMldFCdzkRiSeg3sxI81oyvuqQTb81bUSPtyBtgik5 X-Received: by 2002:a17:906:c104:b0:a4e:174f:a913 with SMTP id do4-20020a170906c10400b00a4e174fa913mr11242619ejc.58.1712670268671; Tue, 09 Apr 2024 06:44:28 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712670268; cv=pass; d=google.com; s=arc-20160816; b=Rwx5Gk6N41SFNAJPjlf/5xMAbgo3F5PPOFk3kw3xkTs/eMx+Zw5M67RZ1yduQCcq3P jtcYQswg4cSf6DXqlV06oCGcBtIMLVMaUZ+Hi/yyNU6XfEVwOzbiAI4L3sgkuV0JUoLO hCrUOJ2ryAagGD7xR2h9Pvyz/UokQMcUAXKMIa5596u9kwN8gsCMOKCo8FKLMyl7+dts qVJoLuuOoLIBETcK0NLq5HZOISmVHkERjd68XFJIMC4OhGUJ9lHSSmo/U9OEOgwBO5bJ gq5V6Sk9YysW8xKia3BMHTORwu7lMqvGBrqyAimy0mMRhfhPoQCNHvTJhqcq5wFHJud+ OhsA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:message-id:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:dkim-signature; bh=uMEfBjeMsB/RLCKigMRUoYsxAnS7VrosZGuO6YiswGs=; fh=iEI9PkAYOGOFvyf12XJLKhnzz670KHD+E4ERe8QnDXU=; b=SCkBLolFu+60a+Kc5isiS/vmLJutjesZrvzleqM7iHzOKDK/tt5RSnul/cTyYhMuRy otagYHpeQdk30knzEE2mLnYnLeQiqJq/PFrfns+wg1N18vGEkA3RXOx2Bx1Uh4bbbUtk 6gwcllBbXE9UKEv/5A2uog7jr+vaX26vfO8zZ/pReVDhEkec2AizXq/ICnG5Y+EVWF4T uKP+ipF/QidVup6JhSbd6sTkYEP60dUC2cGNf6atAF4YhQmynayBPk3qG43DGAgNgUym m1YQNUe7N3yjKT+rWLQIntSOsSC29qwkeiQaut9jyLKETwtUh6xd1DLM0jn1sWJQa+kT /d2Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=TEGUOZZ5; arc=pass (i=1 spf=pass spfdomain=flex--pgonda.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-136991-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-136991-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id dk7-20020a170907940700b00a4e39ee717fsi4891690ejc.169.2024.04.09.06.44.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Apr 2024 06:44:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-136991-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=TEGUOZZ5; arc=pass (i=1 spf=pass spfdomain=flex--pgonda.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-136991-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-136991-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 67BC31F21099 for ; Tue, 9 Apr 2024 13:44:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id ED15712FF7B; Tue, 9 Apr 2024 13:40:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="TEGUOZZ5" Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8CBB512F5AD for ; Tue, 9 Apr 2024 13:40:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712670017; cv=none; b=XHAMtsBid2ZNZ5TTRzQjPVrCiQK4+q4VZHl6sqagjdGhUlVw4Zb80E+l4YzqUIBfXg+LtoYN/q/KyDhkjYYIueFY4SNgNGAib0fGyPq0YHsjWb5JTot6gfmPvWaLR28a5LOo52ULDPCgqfl+QS44r9683lMj28NYj4/COXFVCkY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712670017; c=relaxed/simple; bh=8YAynhoBcTZH25sdLVIb9gPxNYS9bVlziuWqHn3N3EE=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=CY8MbLsk3jUt0lJ9JKJZI48QGb+07WroJJZvoIOYaN8WeUoouDVpZDFE7BxP3aQM6mvcRCn5eMDIZ7TquT6VEfqTwlIXeta33wC1QdPffZylQiMHwwYfnmLh3+DAZn09T7j62/hMgJeF0aHnIVThL1QR+O4S9wqVYpf6SDuzXCc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--pgonda.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=TEGUOZZ5; arc=none smtp.client-ip=209.85.210.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--pgonda.bounces.google.com Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-6ed613bb4d1so1130843b3a.3 for ; Tue, 09 Apr 2024 06:40:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1712670015; x=1713274815; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=uMEfBjeMsB/RLCKigMRUoYsxAnS7VrosZGuO6YiswGs=; b=TEGUOZZ5SFJr7IV9lSgRfIUHw0VwRgQ2Q4MMll7rzmMFLWAX2m8VDxQxY39+SQXd6i UHDlCgdHDuxHddLC6GtWWlbctFnizXjPw7V90SnxdsU/FLD+XT22koVCFlgk3XBqjGd3 ZUPLu/lGGo6vG0IVzRbSxUyLMpuC6rm0rviKqv7p5GL86ooQ8bV38PKLnB4U43u8Hjgh p149YnqYgU7/qLXkzSbq3BWPlLPq4oocK5J2NLxsnMbaxN4prEpL5sawzbHFF38WLtzI k4vzjPoq4jzryBQFByWIAifhWxFeIt4TZHBQz03MXDOjQt3NGCJsZ8V0Zm1nE3SQ84Pg PtUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712670015; x=1713274815; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=uMEfBjeMsB/RLCKigMRUoYsxAnS7VrosZGuO6YiswGs=; b=GqxqbT+McLe7QEbJ9F5g7HOPutqQ60KNe7B1X05faomQ+mRvnsAx+33PgfiC2TjwS4 YoJHVt53/HQCPRdhjG5YFXXu7C1LsrJp5deVaWkotrV7Lh4qEQK/1g7Uo+gJaK/tbH/M EWS6nSKtqrsvcq1tCxhCydajEj5+KTBEarmGZd7lJdTgiiSmj3rWGrhR/Ly0xbJ1J7QC 1wdokhGxtHe0cAcqeYZP1cXwu02dgdZ1zDjOxwnsdBG0dEhxVW1o5wa/V7NOrkboK3eQ Obj6v38WWaVetO/eFCJrBC7WK4M4EGf7C/qMnnu7PNClIZYGpRzw5WZS25Q8yRsudZsa S2JA== X-Gm-Message-State: AOJu0YzEjYFxgZtYP7WpVFseyB6sdl6JIT+AgNSp+zviWZghvxUw0+F+ y06rzDQgy14kfFn9ImALjTtvubpVX2bk9YGjB3c9fvUGj8UIya9IE636mS36JOfmJtkFmx4Act2 yUg== X-Received: from pgonda1.kir.corp.google.com ([2620:0:1008:15:661d:897e:ea86:704d]) (user=pgonda job=sendgmr) by 2002:a05:6a00:1828:b0:6ea:e2d9:f2af with SMTP id y40-20020a056a00182800b006eae2d9f2afmr1093312pfa.0.1712670014924; Tue, 09 Apr 2024 06:40:14 -0700 (PDT) Date: Tue, 9 Apr 2024 06:39:53 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Mailer: git-send-email 2.44.0.478.gd926399ef9-goog Message-ID: <20240409133959.2888018-1-pgonda@google.com> Subject: [PATCH 0/6] Add initial GHCB support for SEV-ES selftests From: Peter Gonda To: pgonda@google.com, seanjc@google.com Cc: linux-kernel@vger.kernel.org, Vishal Annapurve , Ackerley Tng , Paolo Bonzini , Claudio Imbrenda , Carlos Bilbao , Tom Lendacky , Michael Roth , kvm@vger.kernel.org, linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Adding GHCB support for selftests. Very similar code to the ucall functionality, I didn't refactor anything common out since I was unsure with just two instances that is required. If pulling out common code between those two is preferred please let me know. The series only adds a single usage of the GHCB which is a special outsb GHCB exit to allow for passing the 64-bit ucall pointer. In future series we can test more GHCB functionality of KVM. I'd like to base some SNP smoke tests off of this and the current SEV selftest work. base-commit: 40e09b3ccfacc640d58e1e3d6b8f29b2db0a9848 Cc: Vishal Annapurve Cc: Ackerley Tng Cc: Paolo Bonzini Cc: Claudio Imbrenda Cc: Sean Christopherson Cc: Carlos Bilbao Cc: Tom Lendacky Cc: Michael Roth Cc: kvm@vger.kernel.org Cc: linux-kselftest@vger.kernel.org Signed-off-by: Peter Gonda Peter Gonda (6): Add GHCB with setters and getters Add arch specific additional guest pages Add vm_vaddr_alloc_pages_shared() Add GHCB allocations and helpers Add is_sev_enabled() helpers Add ability for SEV-ES guests to use ucalls via GHCB tools/testing/selftests/kvm/Makefile | 2 +- .../selftests/kvm/include/kvm_util_base.h | 4 + .../selftests/kvm/include/x86_64/sev.h | 7 + .../selftests/kvm/include/x86_64/svm.h | 106 +++++++++++++ tools/testing/selftests/kvm/lib/kvm_util.c | 22 ++- .../selftests/kvm/lib/x86_64/processor.c | 8 + tools/testing/selftests/kvm/lib/x86_64/sev.c | 149 ++++++++++++++++++ .../testing/selftests/kvm/lib/x86_64/ucall.c | 17 ++ .../selftests/kvm/x86_64/sev_smoke_test.c | 22 +-- 9 files changed, 313 insertions(+), 24 deletions(-) -- 2.44.0.478.gd926399ef9-goog