From patchwork Wed Apr 19 22:23:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Patra X-Patchwork-Id: 13217531 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 860D2C6FD18 for ; Wed, 19 Apr 2023 22:24:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 21524900032; Wed, 19 Apr 2023 18:24:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1A06E900002; Wed, 19 Apr 2023 18:24:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 01A6E900032; Wed, 19 Apr 2023 18:24:10 -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 E4A11900002 for ; Wed, 19 Apr 2023 18:24:10 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C23A31C63B6 for ; Wed, 19 Apr 2023 22:24:10 +0000 (UTC) X-FDA: 80699569860.30.0087AC5 Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by imf02.hostedemail.com (Postfix) with ESMTP id DF6E280007 for ; Wed, 19 Apr 2023 22:24:08 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=3p9iTgdU; spf=pass (imf02.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.215.172 as permitted sender) smtp.mailfrom=atishp@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681943048; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sx5yCGWct6pM6GpC/mvdByE459bnHS7kFRJEEmvmIAE=; b=guLj9HZiRPqCr1e/bcIC8gST6cwpBSJYccpJa4z2DBkNOXzTbNzq5IaiYdM2RV86ruFlWn Ij4m3NTwNZkp22TmckTPTjxSs6Ev/Y5FVMLYdy3AHavuGDZ4M8mBT3RihdZ8ZB1V+va3Gd sACOdwsMzE+LQHA8/RwH1FTfU4lochY= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=3p9iTgdU; spf=pass (imf02.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.215.172 as permitted sender) smtp.mailfrom=atishp@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681943048; a=rsa-sha256; cv=none; b=2+E3eiChAmANklbXq7aI32K9qt6vSuG2MR67OJYHXr79mevdq1pBq5+6YrJxlQgi4zsfcQ qIsFO6l49ksgkOjnpRenLEfGPnf+ttKlDMYxFASwC9foqsP7gRDDe/RA4hul19tqAsgyWh blI2hPY9mKJj8i7Es6htbc3siYgpjYM= Received: by mail-pg1-f172.google.com with SMTP id 41be03b00d2f7-51efefe7814so276568a12.3 for ; Wed, 19 Apr 2023 15:24:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1681943048; x=1684535048; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sx5yCGWct6pM6GpC/mvdByE459bnHS7kFRJEEmvmIAE=; b=3p9iTgdU1fM6SCFnmbdU2SRrkZIz70XAXwuZckkQOMwQBsxli9xyQOj3eelNgilUbh Ys8/7Ew5TPJfNpxVGDr0CtIGeK0FA4rEB+OIcbXgq5wyTLnVYPvSZ8aMalLarGl9SYQB 5RACL91+xtTKghPY756sehNtiuCKsCnVWuoe+lw1F03ENQxtWOfB9WS65O7GV37PILFO Dk35L2JW1UKZe1fvGcD1U01nAz5TPWWbGAHGpwD1ZT3uAJFTUyTj5jlwZGRm00f0H14O tl+5fi2Hb+F0OmZuIVTWcPUeShVBuC5Hht10Q7j0AV8S9TF+U8wIpbjtIc2XL8zQkszI EVlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681943048; x=1684535048; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sx5yCGWct6pM6GpC/mvdByE459bnHS7kFRJEEmvmIAE=; b=ip/bdJVWkKe24YGGq4INzTjLlZOThO7OPWFOvnVFTG+zQtQw3QoAH1GGVtXgRBQzA7 OXKOswmAp+QeYrtcj++3pkfVN2vcPrk7IXJKLP/gEiQtaa2V1Xi7EES/g9SYeo5comvr I5ht+a4zPofuiCkAJssv3p7mOJQZ5f/g02a8yUPPQsgusHsAI9U4cxMD0kvyV5KrDlVD ZWNe7U27TBO3LlXWSZ07at3CcpAeCOV7IxLAHUYcBk6c6JfOALNuskAfPyE3W58gC364 +hwNjG8H3wVmx2AOqrQ1t19d7tQgZyhOIBVyginWdnOewhT85GgxG2df68LelKwSNvlU uPLw== X-Gm-Message-State: AAQBX9cvsdMMVefmrZwmBQ4FTyBanxoUDstY7TrCeHyDuXWD+olj4kg6 uet8EgVl7Dmqdrc5T5PvOvZQzQ== X-Google-Smtp-Source: AKy350YPzGRajmyQ2O5tL/h5sOqIMWA3WFpT3qCLbVNDZ6itlq+/cjeCHlrQkCoL9IBGQLSaGxxwuA== X-Received: by 2002:a17:903:2905:b0:19a:b869:f2f8 with SMTP id lh5-20020a170903290500b0019ab869f2f8mr5951568plb.21.1681943047880; Wed, 19 Apr 2023 15:24:07 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([66.220.2.162]) by smtp.gmail.com with ESMTPSA id e4-20020a170902744400b001a681fb3e77sm11867810plt.44.2023.04.19.15.24.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 15:24:07 -0700 (PDT) From: Atish Patra To: linux-kernel@vger.kernel.org Cc: Atish Patra , Alexandre Ghiti , Andrew Jones , Andrew Morton , Anup Patel , Atish Patra , Suzuki K Poulose , Will Deacon , Marc Zyngier , Sean Christopherson , linux-coco@lists.linux.dev, Dylan Reid , abrestic@rivosinc.com, Samuel Ortiz , Jiri Slaby , kvm-riscv@lists.infradead.org, kvm@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, Palmer Dabbelt , Paolo Bonzini , Rajnesh Kanwal , Uladzislau Rezki Subject: [RFC kvmtool 03/10] riscv: Define a measure region IOCTL Date: Wed, 19 Apr 2023 15:23:43 -0700 Message-Id: <20230419222350.3604274-4-atishp@rivosinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230419222350.3604274-1-atishp@rivosinc.com> References: <20230419222350.3604274-1-atishp@rivosinc.com> MIME-Version: 1.0 X-Stat-Signature: p495hm3jc9rkdx8gsjjocyb6e5fiih3r X-Rspam-User: X-Rspamd-Queue-Id: DF6E280007 X-Rspamd-Server: rspam06 X-HE-Tag: 1681943048-446411 X-HE-Meta: U2FsdGVkX1/G5ZXkt+hUdwe6scIUgKZvDDf+dHKcwWKkccHJmBr5UQ6PRU2Q73Zw44HUhzDZwX79i93qxImk9HMJuG8ktpar573LhkdNgQI9riNq6DiWV5VAWVB2djLlTB4nm5NtrGSPXBYPxQoWI/WRX+p1tkqraKw5FgAHRnmv8EE4FSncB4bb/+NyrwhQVtwN0bcuLH4pfsh2sG5ajw7l2QpDvdR1dBCv2gdgUwdLYQDAogFf8bfUSu1QZsOi59Fy8NxvN5X4y15foUorHPHbwmlZZJTFZY47KpkyIMpK55hGJpYtw9nNf5mJSyipmxcgJy7k6zGXqQaVEOxK/KMoIkybn3Beo8dfDUuOjaPoXZ2MLRlHCTWLOqcioSJJ8CJ+R/H8285dO2xgUq9RWYcTEOnDF6ojCPdMzoI3e1F6ytwFliFCvYX2BzNoPjBkGNugzF2hb8+qteRyQd32mkJ99pmSCZUQxqF5YjhPuAKf10SvqomJc6+PFBFF24evYKuus0V9c1ioGOMJQw7fsCecUeS3PUB6JsG1MV74b06QpfEH2XuoCFNWQH80N/we06IK4mekyhsMffi+52vwH7+RrOjd7plrKXduo9chu8ipCY1FOlIDdtMD6UECpI8Jeskv+RcNWfQnWw1WgcPviu0r3/fL3aQ9dXrhfJPiBuhNWvQ4pjPuHqi6ybET5hKAMqdOvsLDKU6VPKPJb9D0oWMo57R0vAA6NIcx73rw4B0XlR3P/v8fD2yU+uVrhYzWlpcMQ2Yo7ycP2jaa9maUzLJFob56Io8evdCFx8ClMVYSNHwbOr8yUOsfcqj3j+28FqJYnTOmj6g4LIlgXNvZLwPEkXF9iX6jOKmZbRLigTPTkBYaA1s6ChkTTnNhRwBoaNzyLvkyBQm7KI/kx1wN9BHesPNqwXlPaQMRsRalSNSZ7nJeoyYAHfVBtFHnOPTa+P0+jqLcf2sejXad1cC Vgz5jRx7 hgfKrgT67guxep+h88jlB5XmVtHX4BdxpCTqIPSfg1EztVZRgFFtTOhN2WQtR1qk5sQ6w6jtZoTQy8qpgsZr9EuDI9q9jJt97nC8LGKs5JqrjWIVqRvA2fuVJ5bDtYaQo0iJpUHd2DyzIc5JOPNzgI5rFyb9GDADPjfUBavXWKI+m3d6IQ7fTD89V+PrVzuGGlO4V0zG7fjn+2bgdCXcE/8fj1np4WJxJ+U4sR3+jfpaTu8BxrqtjdooxTuqNjB389Ub512pUPDmhaxehzzryJhEbX8hPD7XiNIk8A6w4ozMr1/UWSsendVc7JtDw87u8bM3+yZpWTxMhy7FA/9v4kghd3JaROU8MsS05iaLcRz5I+fXlmR9wcLbqKFcZq/EZGpFS2VYNUPrt9J3IoSkc8HMfAmCg/REKt9UQx0DGwP1PLxHx9YF0oV1Hy+XWPDOUTWZz+wwVF19UMhKbwk5O1Mwqdg== 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: CoVE VM images needs to be measured by the TSM. The VMM updates the host about these images via a new IOCTL. The host makes appropriate ecalls for TSM to perform the measurement. Signed-off-by: Atish Patra --- include/linux/kvm.h | 2 ++ riscv/include/asm/kvm.h | 6 ++++++ riscv/include/kvm/kvm-arch.h | 2 ++ riscv/kvm.c | 21 +++++++++++++++++++++ 4 files changed, 31 insertions(+) diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 000d2b9..d4969a0 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h @@ -1547,6 +1547,8 @@ struct kvm_s390_ucas_mapping { #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3) #define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags) +#define KVM_RISCV_COVE_MEASURE_REGION _IOR(KVMIO, 0xb5, struct kvm_riscv_cove_measure_region) + /* ioctl for vm fd */ #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) diff --git a/riscv/include/asm/kvm.h b/riscv/include/asm/kvm.h index 1dce9a4..2bacc38 100644 --- a/riscv/include/asm/kvm.h +++ b/riscv/include/asm/kvm.h @@ -98,6 +98,12 @@ struct kvm_riscv_timer { __u64 state; }; +struct kvm_riscv_cove_measure_region { + unsigned long user_addr; + unsigned long gpa; + unsigned long size; +}; + /* * ISA extension IDs specific to KVM. This is not the same as the host ISA * extension IDs as that is internal to the host and should not be exposed diff --git a/riscv/include/kvm/kvm-arch.h b/riscv/include/kvm/kvm-arch.h index 9f2159f..08ac54a 100644 --- a/riscv/include/kvm/kvm-arch.h +++ b/riscv/include/kvm/kvm-arch.h @@ -120,4 +120,6 @@ void riscv__generate_irq_prop(void *fdt, u8 irq, enum irq_type irq_type); void riscv__irqchip_create(struct kvm *kvm); +void kvm_cove_measure_region(struct kvm *kvm, unsigned long uaddr, + unsigned long gpa, unsigned long rsize); #endif /* KVM__KVM_ARCH_H */ diff --git a/riscv/kvm.c b/riscv/kvm.c index a9ade1f..99b253e 100644 --- a/riscv/kvm.c +++ b/riscv/kvm.c @@ -13,6 +13,27 @@ struct kvm_ext kvm_req_ext[] = { { 0, 0 }, }; +void kvm_cove_measure_region(struct kvm *kvm, unsigned long uaddr, + unsigned long gpa, unsigned long rsize) +{ + int ret; + + if (!kvm->cfg.arch.cove_vm) + return; + + struct kvm_riscv_cove_measure_region mr = { + .user_addr = uaddr, + .gpa = gpa, + .size = rsize, + }; + + ret = ioctl(kvm->vm_fd, KVM_RISCV_COVE_MEASURE_REGION, &mr); + if (ret < 0) { + ret = -errno; + die("Setting measure region failed for CoVE VM\n"); + } +} + u64 kvm__arch_default_ram_address(void) { return RISCV_RAM;