From patchwork Wed Mar 7 16:50:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10264543 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id F0A61602BD for ; Wed, 7 Mar 2018 17:10:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DEBA029744 for ; Wed, 7 Mar 2018 17:10:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DC8D729745; Wed, 7 Mar 2018 17:10:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4DBF929736 for ; Wed, 7 Mar 2018 17:10:51 +0000 (UTC) Received: from localhost ([::1]:34441 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etcaY-00065v-Db for patchwork-qemu-devel@patchwork.kernel.org; Wed, 07 Mar 2018 12:10:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50477) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etcHq-0004t9-5e for qemu-devel@nongnu.org; Wed, 07 Mar 2018 11:51:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1etcHm-0008Pk-5x for qemu-devel@nongnu.org; Wed, 07 Mar 2018 11:51:30 -0500 Received: from mail-bl2nam02on0060.outbound.protection.outlook.com ([104.47.38.60]:22826 helo=NAM02-BL2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1etcHl-0008PG-UL for qemu-devel@nongnu.org; Wed, 07 Mar 2018 11:51:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=1qElqxicwPpfE2FF07rYF/aO4+2fzM3HpGxP80QPn0w=; b=Bw0xqaPzBp9B3ZgEWhlLzt2bcSaKes01/Ewdu5WvzKgcwcQjRMWu3u6GF0Wiozwcw3soUgh7LryIWePfCUleG296ocVLGcuUaKabebwBXnppHgwipCVc/Cz0WWVJaEVUrNAg4Qub4EorBDnX2w69IIy5IM1+iZ2JHNT0eQ4hVhg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by SN1PR12MB0158.namprd12.prod.outlook.com (2a01:111:e400:5144::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.548.13; Wed, 7 Mar 2018 16:51:22 +0000 From: Brijesh Singh To: qemu-devel@nongnu.org Date: Wed, 7 Mar 2018 10:50:31 -0600 Message-Id: <20180307165038.88640-22-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180307165038.88640-1-brijesh.singh@amd.com> References: <20180307165038.88640-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0501CA0095.namprd05.prod.outlook.com (2603:10b6:803:22::33) To SN1PR12MB0158.namprd12.prod.outlook.com (2a01:111:e400:5144::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9f583d7b-f58c-453f-2127-08d5844ba87d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB0158; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0158; 3:MkStI/ObJ+gAwmqh/u/Q4XxTs5G2Bp8FLumzQpEcLtrTxh/DIwYIRY11v0ttNIzfF+isUVsO9wQdxEe7QS0TZfZwt1vlYo5GHeTrhO8c4+ij+MSQGrAVyLMKn20cjpGrrBLZZ9ulxnGsiXTyVrttRgwCB24jdcvjXDOUlOvKW0YEgMxh1HRslHS89OK+6V3Kv/+2SzK70hCp1OAL0IoJewW/FXiJOC0h0awoqJH4xluOontGRao5hsoeGcLdepnd; 25:gHthvBnRWIEsPTOiyn6d25doW96djqyOchMh2sVnEdzgIETjl64ZG3v/AqpyE5AP+H7ivNHHnHqg9uiNByg3YfeVorzV00lpxTjc5lJsb7lCK6I/RC2VD5hO9ofRKzCUWvlMNdF+wV53rYPigzbij67OalsWNm5/5EmuzavIwrnXBdCoVr1mEihWVzK5O56JiXOZ04blEMJ18kAoRzFmE5DqLgnRGJ9zOJKqknPW87Lmn3W/3zLRaDLHkvdMY4f+0zJtSchxuKlc1sGW+/rdwQBXCXfc+NhnNT2AVJ2xIXX3nOXMcVkM3oJg7HyMBtMkMdmDj5tPHR+xyDQioOUPqw==; 31:dCcte8eSSv2Mz2C82lRpMXUsqU+EsXZ+JCO+FsC5TYmmobMyfGI8ZNsqat3clzvCAKpemZaQJT5g6Nll7C0HrrWY4dqX2+EAHpqFAZT0EbNTd06KWayTrqLrfXTSbyhqJokjXNL3Qq/unGnNg7gALhDiwAF5YNStz/wznkLD442HvNxHi6ZsbQOJQeH3tibaEI+jKRwj7AdWT9todfNyCNaNNC5BzC6A4jali/2gECg= X-MS-TrafficTypeDiagnostic: SN1PR12MB0158: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0158; 20:Ib91C/0/yM++sowR/9ihgW/ik7Hf+FJpF0i0FGAk9msmZj5/rBAD0aZVFctqZJuOwtKKuUvzxVuD8vEwqbaBgasdlqg3hSc7V2JAEUvhuxRFFnQ+vavcfmxngV0LlQXSBdVf2EaNLcTfwMyzwwjuaB+I71GBzwZfDuiFwqA4VXY7oi2g4tQei/d/aAtFMxmtGtB1qFuKlWtcwor94nJdw/Lrmkr1qWuvYBcLUwc3YZ0GFL1JkqiGPTMUYkTYm+JXe9+QCSukhEE+p29INfu//o2OvZKpbWWVOQeApkmn9gqRWJaO8ya5Mb+j4udyOg6YZr8ptRt57rpPheXE/sUt8U2Rg5X+6a4B2vH+RDGdiQekhKAzUZHVIOQj2wKHJH6PMASkakmNNXsI46sLIVgnEZU3SRsmpM9Rq41D1MlgKmoCN1vdAw5NY+COPVJxhxq3aAn19lovacc0N2TGVpn1EeeeLk5yXl97d5l+hzbSn78NVswGXWx6nRTb5EJDtnEM; 4:qdH5OIl7Eltw/RfPMiYNCNo/ncifwhzma8z72H7su2aGfY6jDbFX/LSKi1mG7/srYrlxVCkf0r+6+UxScp9AZXPMnOtOpnMlgOlFtxZ61uwv8V8w0mprh4cQKeV6UDbKsACLOUzF/v9RQrjaTD0k4pLq5V1801m7Pm5KgldnGJmQvTZF0x/SqfoQfz7ziB2kOdISayz5Y3IKxBiMaeo0mJEFfFqseD2H1BqyBFKswNNt5pM4NOEw0+xxFlYlp+HIKO3IYLDgEkAWceWfS/EHZ7CmKjr4ByGbpVFreWzX0t5BCJJLMb9JOclIS6XmMIlQ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(3002001)(6055026)(6041288)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:SN1PR12MB0158; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB0158; X-Forefront-PRVS: 0604AFA86B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(1496009)(39380400002)(39860400002)(376002)(346002)(396003)(366004)(189003)(199004)(53936002)(8666007)(2950100002)(6486002)(6666003)(6916009)(53416004)(3846002)(1076002)(6116002)(4326008)(54906003)(8656006)(2906002)(25786009)(59450400001)(386003)(68736007)(478600001)(48376002)(50466002)(105586002)(2361001)(2351001)(86362001)(66066001)(106356001)(47776003)(186003)(16526019)(51416003)(76176011)(52116002)(7696005)(26005)(16586007)(316002)(50226002)(8936002)(8676002)(81156014)(81166006)(36756003)(7416002)(97736004)(305945005)(7736002)(39060400002)(5660300001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB0158; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR12MB0158; 23:aZYzo39BFJqFXvMalXriJ79KyXg7l1tINZF742KXY?= =?us-ascii?Q?Vzr4wGa8dMvygjuO/RMnklZRrAlhl/3oRBJaM1j2ZAll7tsyXgCorbDim+RH?= =?us-ascii?Q?AmbuyMWjWiV6H3XarTPKJ+FBgb6l7BiuANFQtXTLq7YlMSsTDOjVtumm28CP?= =?us-ascii?Q?u8q/kOr5XnVRObz3VkWWMoMRtlzYFLEZsGbd4KXgxhZicNw/gH1/tjMCzDyH?= =?us-ascii?Q?WJ5gvS537DUhckGnDd2lnLjFUyOqbgtIl1FZH8M9GsHvCjy3M8lHU1PJfPlY?= =?us-ascii?Q?54vogrY7gI2jZipfo/us5NJkqMdq1MoOdakk9gRcyoXpH6TjUYEBegWO2hie?= =?us-ascii?Q?GKGz4wJ5hN0h6OmBqWF0LKYYz+yX/6ZH0N0s54gexsRXuGqeZD295o4fkChG?= =?us-ascii?Q?MdNt9Y5Q8ZbGn8yaFy+279ZSkeOfGRVymyH3qWqk1dpDRwtsENMU3TNghVk2?= =?us-ascii?Q?uTzHQcuscQvc6t58StzKdCFqGBmohWAhqOl0YWSfKUctu1Na6nPDQpD93rMM?= =?us-ascii?Q?hv2NAoAMRBy8uNIYTV0v+G7psR9vgPjk3P87/i6XQ/+hjNI8xIoxP5yCYgu7?= =?us-ascii?Q?gTsSYWBz2U/cRTv8vex0buA6iYPYCnTn6DIs0yd1EcyXUirXI4CNin0eHyR9?= =?us-ascii?Q?LP3BwMYAjN1JWwH6vrJV1PeyyUmMz8Plqzm5FCKKK1cE8lcCudlPRf7epmHu?= =?us-ascii?Q?vbfYlzggGpEVUkN3gMENf4Epqu8HI5k8LueJo22F9qOGEXWWXoh2Rlmas9KX?= =?us-ascii?Q?ehZRni60hfyAQnj+KSyhbZq5i6bhpsGNHxk5EcwAP2Z4+JWRkMqls4ayfNf4?= =?us-ascii?Q?ivShsOiGpYAHuouYwMQg8Ai0htsJtLvYe3MxMZ/QVbWwzkrig5kWSgbtHyd1?= =?us-ascii?Q?mTE7l1pOC42Excw8DPUxa8NEUah+/zNDechZedChWmdQjbAZhIwjGVUVuXtm?= =?us-ascii?Q?HVMcVXtRyaXXBZ/g8vb5rTDXPmkn0cmGXvDg1VxK+GvkPWMbKMvhIRXltt/m?= =?us-ascii?Q?doRn/OZOOiUhC50EHLfRwhCzoUQ0uDaUXncfKx4KTcAePYiCBTZ+tbjVpa7g?= =?us-ascii?Q?bv8wTNR566G2AG1Etdd9gR6KAY/mMFCyJ1foTd25bIFusV6BMzCKVDdwM544?= =?us-ascii?Q?bbtCtPb7XVBpScj4nv70WQV2viNukdzbKWN9jFaXZ5htlz0+CplCA4Qc0zpL?= =?us-ascii?Q?h5nkrGgbltaGqiDm+LYnkG537CX7CO1q2bj5eQifAywlnH7lXvukud+yc7pq?= =?us-ascii?Q?5bhbItBbCHoxMT8eyr9xUTwgckIZmAlA6DSwtz2WReVJSGGtL0hArpLLRxVM?= =?us-ascii?Q?WNAXL8+8h0LjJElSXXEuGOEchIEZM+T0A1QYLSTKBSTDxguHqTVj88D2lFC0?= =?us-ascii?Q?pvXK6BMSEPHHfujEP7VyogqYwvpz++4hwlK2i2bUBfPeuFH?= X-Microsoft-Antispam-Message-Info: 2egZDMfS2eB0MeXSeSiaJ7Q0X0/sesBwwPE6rZ8p6opkA/MQp5iqSgCTEclGezVZP7WiX+R/mP4sXPH9DcB4YjVc3wCi7tEFz26/ddCzDaBjXYeVuUc+qjG2fro6YBSmRCvYAUDYGu8k7AO1bEClKE4o2o38MCWsbVof8QJ1Du3163uyOM8CjX3FEWhTS2qK X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0158; 6:POjD0xtxP5t1qWU+ZFLsM+8Fd7huYXguhtMr0dQrkb/XxXqD/xc91DXqe/+hHZmLAmi6W7XvuPyvQyFvBerJFGmZyHdzVLAZ4No/jRRprSIk3WnuCafSJcVyp3vv50gRA1zYnYa8/HiQ+zH1PB82Fr3j+psOFECfBK3lJPaeI6tB5LtYbm0nG+b64F/y/4rtj6BU6QedVirBjQRvwr+0Gg4i2YR4McfyE2LqroOH51AI7ryzC7WmV4Wl2l9LXiuXUgPlwv9x50nvWpCeEFi1f+SXOD0Le/tv4GXokZYdgTOr83VZl8SP42XoRwP3N5EKAwXPYWS9Y1eQhIYH2OtOTQdWnaZcD4ps8OnALxY6v8M=; 5:6xEESntUZicIH1NQZL5ufUztrZoj3JIfyPHJ9AQV6PpNfmft1VMenES+HDlo4Ii/WyMHVe+2R8tYraTcTQbARUw78Z7Stlu4ioWgWc72+YpCXpdrrSv5VjkaWP3PHSDf5Ux1MtSQ04Mj0pzJBXe41DC4KvESJ+++2XMYc0UmeiU=; 24:Gv8jhsfggi1/lGR1R7eMpWFUvzmgancAFdNuV6Xvcg81/+C7hbSJFf2M8Za7aTqKQSDk9wXbAlRpBtJFRrtJ+jUBnxu2yvCMF4Ci7qa3q9g=; 7:3K7oDYRksC6JmkBcAxt6JjxK7050xBFRtactoS3VxxeqGKtCVVpTlMr1bgUNj2I8nYN9YKviVD4JXGi8Yvmksd23v2nJ7WsXH5fduKiP489EMLLFSTlpLPN61oqL/kAomQMkadrJiEoTMJfsKxL/au4j85+EnCdp/ZmnWHHT3kZpiz0wUXxtn2VFTFw+9PaRfUyhxJiIMaRWRCCAivWiI7PoHpxX/JWI6poTwET+lCSE86oFs/mKRg4yTnqJSAG+ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0158; 20:U39tQVA0pQ5ObkC+djxPBeNmg5Ys6JjgzcoTd+gRr2jhishNc4rLchddbgL46lghV3KFVeIFSIR76gOkx+u9/Ayu+dcgL6WlFfWAbxZYAgkNZ8Tr/077sypFSo+cVZTFPprOsCCr/y3+E7izkbHXhlwizMZcUrsNgrp0muSf+1KvT9N5CyUdPn0XA+s3rmosvlRwPHQAze1i0zIPScL/JGMklBBWXVDai/jroYtK+67+iFZnfaL/4RrU/CYbQ9vC X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2018 16:51:22.1042 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9f583d7b-f58c-453f-2127-08d5844ba87d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0158 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.38.60 Subject: [Qemu-devel] [PATCH v11 21/28] sev/i386: add debug encrypt and decrypt commands X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Brijesh Singh , kvm@vger.kernel.org, "Michael S. Tsirkin" , Stefan Hajnoczi , Alexander Graf , "Edgar E. Iglesias" , Markus Armbruster , Bruce Rogers , Christian Borntraeger , Marcel Apfelbaum , Borislav Petkov , Thomas Lendacky , Eduardo Habkost , Richard Henderson , "Dr. David Alan Gilbert" , Alistair Francis , Cornelia Huck , Richard Henderson , Peter Crosthwaite , Paolo Bonzini Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP KVM_SEV_DBG_DECRYPT and KVM_SEV_DBG_ENCRYPT commands are used for decrypting and encrypting guest memory region. The command works only if the guest policy allows the debugging. Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Brijesh Singh --- accel/kvm/kvm-all.c | 1 + stubs/sev.c | 4 ++++ target/i386/sev.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ target/i386/trace-events | 1 + 4 files changed, 63 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 411aa87719e6..8089173491dd 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1682,6 +1682,7 @@ static int kvm_init(MachineState *ms) } kvm_state->memcrypt_encrypt_data = sev_encrypt_data; + kvm_state->memcrypt_debug_ops = sev_set_debug_ops; } ret = kvm_arch_init(ms, s); diff --git a/stubs/sev.c b/stubs/sev.c index 2e20f3b73a5b..73f5c7f93a67 100644 --- a/stubs/sev.c +++ b/stubs/sev.c @@ -15,6 +15,10 @@ #include "qemu-common.h" #include "sysemu/sev.h" +void sev_set_debug_ops(void *handle, MemoryRegion *mr) +{ +} + int sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len) { return 1; diff --git a/target/i386/sev.c b/target/i386/sev.c index 5fbb3105ccd4..bcfc09558c8c 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -24,6 +24,7 @@ #define DEFAULT_SEV_DEVICE "/dev/sev" static SEVState *sev_state; +static MemoryRegionRAMReadWriteOps sev_ops; static const char *const sev_fw_errlist[] = { "", @@ -601,6 +602,46 @@ sev_vm_state_change(void *opaque, int running, RunState state) } } +static int +sev_dbg_enc_dec(uint8_t *dst, const uint8_t *src, uint32_t len, bool write) +{ + int ret, error; + struct kvm_sev_dbg dbg; + + dbg.src_uaddr = (unsigned long)src; + dbg.dst_uaddr = (unsigned long)dst; + dbg.len = len; + + trace_kvm_sev_debug(write ? "encrypt" : "decrypt", src, dst, len); + ret = sev_ioctl(sev_state->sev_fd, + write ? KVM_SEV_DBG_ENCRYPT : KVM_SEV_DBG_DECRYPT, + &dbg, &error); + if (ret) { + error_report("%s (%s) %#llx->%#llx+%#x ret=%d fw_error=%d '%s'", + __func__, write ? "write" : "read", dbg.src_uaddr, + dbg.dst_uaddr, dbg.len, ret, error, + fw_error_to_str(error)); + } + + return ret; +} + +static int +sev_mem_read(uint8_t *dst, const uint8_t *src, uint32_t len, MemTxAttrs attrs) +{ + assert(attrs.debug); + + return sev_dbg_enc_dec(dst, src, len, false); +} + +static int +sev_mem_write(uint8_t *dst, const uint8_t *src, uint32_t len, MemTxAttrs attrs) +{ + assert(attrs.debug); + + return sev_dbg_enc_dec(dst, src, len, true); +} + void * sev_guest_init(const char *id) { @@ -701,6 +742,22 @@ sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len) return 0; } +void +sev_set_debug_ops(void *handle, MemoryRegion *mr) +{ + SEVState *s = (SEVState *)handle; + + /* If policy does not allow debug then no need to register ops */ + if (s->policy & SEV_POLICY_NODBG) { + return; + } + + sev_ops.read = sev_mem_read; + sev_ops.write = sev_mem_write; + + memory_region_set_ram_debug_ops(mr, &sev_ops); +} + static void sev_register_types(void) { diff --git a/target/i386/trace-events b/target/i386/trace-events index b1fbde6e40fe..00aa6e98d810 100644 --- a/target/i386/trace-events +++ b/target/i386/trace-events @@ -15,3 +15,4 @@ kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64 kvm_sev_launch_measurement(const char *value) "data %s" kvm_sev_launch_finish(void) "" +kvm_sev_debug(const char *op, const uint8_t *src, uint8_t *dst, int len) "(%s) src %p dst %p len %d"