From patchwork Tue Sep 6 08:35:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 12967021 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 998D0C54EE9 for ; Tue, 6 Sep 2022 08:36:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AMZhP438AVTfh3MRIoKDLI9KgI6pvSSAdtXYqBb2ZFU=; b=jDRnRg6ZEQYyOg GTYC4nGr2NzLbwQnBnvieeWvvWQ/CHxbJibAK0jbWRhkTvVmc9ksZD2DpPKST/43mkHa4N/YzM2FD ytmZQFbtuK3VMjMoACaRMvmRwqcQpUCvJfb1zxU8tZ8cwm7MFjXoxuf8msEX1fn55zGQC4QGSBPo2 4YNv47TrK2rgFVHmiKOSXrwGStfpIjRzTHtaMuCtYF84+7dNZMJLaReqMewtCfOaXgus/4F2Xp8Ua O3xWVphgpqxCVzQwsdvrskLFnNtOKCjmqAo1b2pTcLfzY/e8ZvK3pAEFh6JZvXu9QDhxZkfzDgQ+a URRTcsjOfAqX4Br1RtyA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVU4I-00BJVU-OV; Tue, 06 Sep 2022 08:36:26 +0000 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVU3s-00BJGe-TQ for linux-riscv@lists.infradead.org; Tue, 06 Sep 2022 08:36:02 +0000 Received: by mail-ed1-x52d.google.com with SMTP id t5so14108450edc.11 for ; Tue, 06 Sep 2022 01:35:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=b5AgkkZuu39oqgpGoAg3+xya9yGInCBwG5bCl7KWK4o=; b=o69ti+UC3tq0qYtxG/aTtA4pPNFbM+UEtrEAOvjzIfSnOQ+WFaNHeJIj2gXBiJQR9u pRqTMKxld67geyxft8CJpqcyopkBA1zeP3FSYNgLYi06fJyblOlBsH+GgAyPnWA7+5p6 NzIeJ3kNy+blC7sKRCrvW6E7OAsB1d/GNieZJhL9O6RTgn56cXsS9PEZmXIgxFMhr1lU zxAkRR243RvMNiQ+KSowZjZHLw9ki8dCjjysq2jr0nqqBFczFqbMxMDurvU1lm71qn6v tXK0KCQ618VIxXPe9ruaaOjh3XwdQerIL3+f8xoawbK2xwqBSnAnqPtCTrmkXMMjt8Bk +PgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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; bh=b5AgkkZuu39oqgpGoAg3+xya9yGInCBwG5bCl7KWK4o=; b=YZqo6eRuolaoHrSkICV2Z7BXctN3s2E49hFV9mPF3xQIyiOM/13tORSxebpHulPygL w7Gxz6BbBlz7SvXFUr9IcFFHHoDrLe6+OzVUYWs2UW8QrHEWvq+Fx2O0WgYo+u/V4hfl 0q4G3Q0tE2JmYKiuO+emJY+su1jonT5yvMG2YO+hFTefjjbG87d9Sjcjr6DZyWgwphQC VqbneIy7ZQ9E18VWF7uZEQ1DKUnqX+ggS7RuYsH/ObeP95DCUnbv0hH0NkEhDC2NDoVS eJ9MAoH+jOvsi18PShpeuoCg0Zuj6MG6/LTdl1YuXrEAkL424FuSnA5BxFXHnrjJu9q4 /Q9g== X-Gm-Message-State: ACgBeo3RoA/J8AuBG041N7fBsmixsEWi8soCVI/2reQ15Pkuvb2WnBoZ dEXMAr9iFwRHCQkYZTC/VG3fXiXIxZlGEA== X-Google-Smtp-Source: AA6agR7LLBYdf0ekc/PqIrscBwg6XoOPac4XT4jqzG8W94jDRAosHbc5RLHPX4pY/EwtrBaecY4DMw== X-Received: by 2002:a05:6402:54b:b0:44e:ac69:c617 with SMTP id i11-20020a056402054b00b0044eac69c617mr4851073edx.64.1662453358265; Tue, 06 Sep 2022 01:35:58 -0700 (PDT) Received: from localhost (cst2-173-61.cust.vodafone.cz. [31.30.173.61]) by smtp.gmail.com with ESMTPSA id h6-20020a170906828600b0073d6234ceebsm6163235ejx.160.2022.09.06.01.35.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Sep 2022 01:35:57 -0700 (PDT) From: Andrew Jones To: kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org Cc: Palmer Dabbelt , Conor Dooley , =?utf-8?q?Heiko_St=C3=BCbner?= , Anup Patel , Atish Patra Subject: [PATCH 1/3] RISC-V: Output cbom-block-size Date: Tue, 6 Sep 2022 10:35:53 +0200 Message-Id: <20220906083555.931806-2-ajones@ventanamicro.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220906083555.931806-1-ajones@ventanamicro.com> References: <20220906083555.931806-1-ajones@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220906_013600_986916_C2A02169 X-CRM114-Status: UNSURE ( 9.92 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Provide an info message with the block size when the Zicbom extension is present and the block size has been determined. Signed-off-by: Andrew Jones --- arch/riscv/mm/cacheflush.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/riscv/mm/cacheflush.c b/arch/riscv/mm/cacheflush.c index e5b087be1577..8595baf8e403 100644 --- a/arch/riscv/mm/cacheflush.c +++ b/arch/riscv/mm/cacheflush.c @@ -122,7 +122,9 @@ void riscv_init_cbom_blocksize(void) } } - if (probed_block_size) + if (probed_block_size) { riscv_cbom_block_size = probed_block_size; + pr_info("riscv: Zicbom: Cache blocksize is %u bytes", probed_block_size); + } } #endif From patchwork Tue Sep 6 08:35:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 12967024 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1AAB4C38145 for ; Tue, 6 Sep 2022 08:36:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pYgFvy3fiO2qjoRxwkp2AcP8dBE4aIq7m3WUFZixuXE=; b=ap6egiHPRpiT28 8RpZc7ZvMivB2tsWgdPSbY9k4w8ut57k6LLT/eT3Om8Myo3Bxq6y7FGCv/+R/JZIndwFcQukAAbzb stjkprG7gmxfZ3f6FbPQ9BOrwZHQYb4huTByavzTWoiaAFqX0HhD2czme6NacJ6JWLmz3GyLyey1s SJLT1GaX9FyC6TZ4hGxbu6+o+nqkg/G/eelfkYyMwhI06dRtO8ZUCRiBBXJMWaUf/ZF9NtTVwuZFN qdu0MvqzvTNsXq3IrtZU1O+JViR9EXSViz1ZLxE7A/2uXBvwnJIpC0ToHOObAGttCZyDsJMXMSa1H PAKq0MEeT7K93oKeSLbQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVU4Q-00BJdx-Fc; Tue, 06 Sep 2022 08:36:34 +0000 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVU3v-00BJHi-B2 for linux-riscv@lists.infradead.org; Tue, 06 Sep 2022 08:36:11 +0000 Received: by mail-ed1-x530.google.com with SMTP id x73so7172559ede.10 for ; Tue, 06 Sep 2022 01:36:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=5W7xgJ1XLJGULKevAAgXs+P90qRf99ffTuS9uPib130=; b=Tjp7n55JKlc/JtFcJKGoVy3GEhSY+XnC7d//XFiVIbJyuMG1pG3Kq/YApDs8RBvhRy aNRO6R64gPqiyZC2MfyGOGsUZiLydeuEUV9ooeGAp8Ckm6XL/i84mg0X8zEyS0VMsXQx t7W9Lw54OrIZb1Cb1pz8n27PvHt5UUXIABJWJyeyyHb+HCvxltjL95W4xHZP8vwrLYd4 j2pnPJjtUZNj8C/IQwWW/Qx3deAdoGm7gagoNjqXb1siXeQUMQvo4QlpHfXWSIqwI3Vq MMYDIjWKa0Htte43io6GDlhNQLC10r3XWFafu9ZJM4StA/S2uudXA6UK6QpMLy/c2M5X nGFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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; bh=5W7xgJ1XLJGULKevAAgXs+P90qRf99ffTuS9uPib130=; b=z3PVD71S6PRz3jmyA9Up7snnj2y435twVM9y4D6Wct7bP62OG30aHBIbiSu6xAokwm 5GLkmziRpwOIuTBA/l4FaLCVHyEAsDD0F4JLXqvhtHu45pGeVfHPGXoPDyXy4sT6gA7T 7tQzOrxkgJsMWKIKPuMT8k0fXduhyJCvwPLeF8BWb6raFzJbuAGZBopb+13WbOOmDLx4 pWvd8WPac3hIGLHWuLpNvXALgJCZYk7rZrXMrhD3KV1Xw3G2OcSnomuv2MW1lVpXLgUL 7BX2Hu/iDRRr+KS5krJ4MsSEbz1kBxOjL9QLAxF7ZFVNWye3A1tHde+ID189sClsaOAA lU+A== X-Gm-Message-State: ACgBeo2OeP3asnClU8UKhO2jYLBIqok0BGQ7KL+b6KQpMFs0JNa2jH2H 0q6TpV6iEPEJICg9VVzJ5zrTMg== X-Google-Smtp-Source: AA6agR6vS0pten5+vz9t1KtsoYWDvWMY0lCUg3ONJqzihxaZ7k+aW50T8a6ipUzn5PdS5oCFk5r8/w== X-Received: by 2002:a05:6402:cb2:b0:44e:4336:d2a0 with SMTP id cn18-20020a0564020cb200b0044e4336d2a0mr9656605edb.209.1662453359825; Tue, 06 Sep 2022 01:35:59 -0700 (PDT) Received: from localhost (cst2-173-61.cust.vodafone.cz. [31.30.173.61]) by smtp.gmail.com with ESMTPSA id v14-20020a056402348e00b004464c3de6dasm8022913edc.65.2022.09.06.01.35.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Sep 2022 01:35:59 -0700 (PDT) From: Andrew Jones To: kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org Cc: Anup Patel , Atish Patra Subject: [PATCH 2/3] RISC-V: KVM: Provide UAPI for Zicbom block size Date: Tue, 6 Sep 2022 10:35:54 +0200 Message-Id: <20220906083555.931806-3-ajones@ventanamicro.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220906083555.931806-1-ajones@ventanamicro.com> References: <20220906083555.931806-1-ajones@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220906_013609_724107_0DE16CC5 X-CRM114-Status: GOOD ( 13.28 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org We're about to allow guests to use the Zicbom extension. KVM userspace needs to know the cache block size in order to properly advertise it to the guest. Provide a virtual config register for userspace to get it with the GET_ONE_REG API, but setting it cannot be supported, so disallow SET_ONE_REG. Signed-off-by: Andrew Jones --- arch/riscv/include/uapi/asm/kvm.h | 1 + arch/riscv/kvm/vcpu.c | 6 ++++++ arch/riscv/mm/cacheflush.c | 1 + 3 files changed, 8 insertions(+) diff --git a/arch/riscv/include/uapi/asm/kvm.h b/arch/riscv/include/uapi/asm/kvm.h index 7351417afd62..b9a4cf36be4b 100644 --- a/arch/riscv/include/uapi/asm/kvm.h +++ b/arch/riscv/include/uapi/asm/kvm.h @@ -48,6 +48,7 @@ struct kvm_sregs { /* CONFIG registers for KVM_GET_ONE_REG and KVM_SET_ONE_REG */ struct kvm_riscv_config { unsigned long isa; + unsigned long zicbom_block_size; }; /* CORE registers for KVM_GET_ONE_REG and KVM_SET_ONE_REG */ diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c index d0f08d5b4282..3f36e79876e7 100644 --- a/arch/riscv/kvm/vcpu.c +++ b/arch/riscv/kvm/vcpu.c @@ -18,6 +18,7 @@ #include #include #include +#include #include const struct _kvm_stats_desc kvm_vcpu_stats_desc[] = { @@ -254,6 +255,9 @@ static int kvm_riscv_vcpu_get_reg_config(struct kvm_vcpu *vcpu, case KVM_REG_RISCV_CONFIG_REG(isa): reg_val = vcpu->arch.isa[0] & KVM_RISCV_BASE_ISA_MASK; break; + case KVM_REG_RISCV_CONFIG_REG(zicbom_block_size): + reg_val = riscv_cbom_block_size; + break; default: return -EINVAL; } @@ -311,6 +315,8 @@ static int kvm_riscv_vcpu_set_reg_config(struct kvm_vcpu *vcpu, return -EOPNOTSUPP; } break; + case KVM_REG_RISCV_CONFIG_REG(zicbom_block_size): + return -EOPNOTSUPP; default: return -EINVAL; } diff --git a/arch/riscv/mm/cacheflush.c b/arch/riscv/mm/cacheflush.c index 8595baf8e403..c555ac7ae69c 100644 --- a/arch/riscv/mm/cacheflush.c +++ b/arch/riscv/mm/cacheflush.c @@ -90,6 +90,7 @@ void flush_icache_pte(pte_t pte) #endif /* CONFIG_MMU */ unsigned int riscv_cbom_block_size; +EXPORT_SYMBOL_GPL(riscv_cbom_block_size); #ifdef CONFIG_RISCV_ISA_ZICBOM void riscv_init_cbom_blocksize(void) From patchwork Tue Sep 6 08:35:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 12967023 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 671D9ECAAA1 for ; Tue, 6 Sep 2022 08:36:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=1RImhohm1UwW1Tqei9Zv94Dte2SsGS2w8gvtXYPNxcM=; b=LgfGsMi70tMiaB ZvQ8CTTAEHaIIHqQ6kP7cFtaesr4CD5ntvz9gk+1HngDNoYnSMjtI6Eu1ieoG0PdFuk+8MDJkAxMa +TFHKwa4YGdCEiJiXHU667SRcwup1RAN+vwon4lPAXBzqKCTlNYmMQPNT6F1lvf/ntUsGLovCiApY OgU4nEi58AsRXLKarUsl4Y5X0j8w74cEqAaVyY65p7AjfuO4NoneCdgms4urj0zTxBDhEu7DXSnmB Qv7JM8I0hhCayuxjarwcvEfoGzyJxpwVKosH16AlCLYsP1u8FrINgWJmOdEQ/51WhNIDrLQEC8joR yA90028ihWf9DiGeu69A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVU4N-00BJba-Tl; Tue, 06 Sep 2022 08:36:31 +0000 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVU3w-00BJIy-9H for linux-riscv@lists.infradead.org; Tue, 06 Sep 2022 08:36:11 +0000 Received: by mail-ej1-x62d.google.com with SMTP id gb36so21466893ejc.10 for ; Tue, 06 Sep 2022 01:36:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=K0PbgrG3aEce+RNqVBrfv7es9LlST45m+grejWUOs6U=; b=PrdqU1cZ1HghRZTDIYbB2OHdFouvReQtmKEIIazTE3+bG71IPDaNeFTWG7kJDT8okv UHpsi21w+Wc0w45fd/rn6BWvs0zt06svSFmaY0xBuT1+HcGZAHz6gwh/e8DC9+xeA2xr kjZaJ/fjQloNMOp+7drn9N2WDKyP57UM3ifzUlf7LjWYBezkSn8pekDYLP6erGXX7eFp 6wzoQXaYts0o76dLNMh+gJCz4ve1gT4cjZU3Duk+LBSAZZZNrzeAk9lVeOohytH5AFoK eXC4uJ9rklwhBKJVVDYq8CEEXIGIhRUVuaJSQMImd92uh+JwNf27xnk7XGznYYvJd2fE xMNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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; bh=K0PbgrG3aEce+RNqVBrfv7es9LlST45m+grejWUOs6U=; b=ZjCDkaqtEtSrqlT1TatmznKsUcfqUCNvjzLED/CL30fQDmgdPuUO03ebuntSXKX6f1 z9bn5lQxzhDdFWwxrfxSDYHyudnqw2raINjtECJdZByrmlHPMYBM0KUrCd+oka8lHjae M4Em0vono4V56Xrl5ZsGu2IWb6oyWQ+kjitXxYF0ptxUw982Rw4V+ZBUgQ4o0lOgNuaZ nIjna64tQDj4syCBzjfz09v6BopXx3pCLyxGBOUMbjhhKqstHljykc5ZB0ZJqv2+RYhU /ieGTyPNgxeWGZ+PNQnFSbiydyDtM0uPTQ+KjSHW5Ms9IzYli+sFzEo9lRi9Pu7gwZu8 viMA== X-Gm-Message-State: ACgBeo0PsjTBu5F/WXUU8emCWZYcc6sDzPI6orkDvGANpzCHxiAhXURs oZ+CBb981WBfJ0Ok5BHle5I8wg== X-Google-Smtp-Source: AA6agR7nYfbY1GSdXqsuaL4WdMWDHUT+LNz7bU3OEKAjDKWlYckD1nCZThji/A1t+vSGTW4t23asjA== X-Received: by 2002:a17:906:da85:b0:741:40a7:d08d with SMTP id xh5-20020a170906da8500b0074140a7d08dmr35183008ejb.263.1662453361294; Tue, 06 Sep 2022 01:36:01 -0700 (PDT) Received: from localhost (cst2-173-61.cust.vodafone.cz. [31.30.173.61]) by smtp.gmail.com with ESMTPSA id d14-20020a05640208ce00b004482dd03fe8sm1734062edz.91.2022.09.06.01.36.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Sep 2022 01:36:00 -0700 (PDT) From: Andrew Jones To: kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org Cc: Anup Patel , Atish Patra Subject: [PATCH 3/3] RISC-V: KVM: Expose Zicbom to the guest Date: Tue, 6 Sep 2022 10:35:55 +0200 Message-Id: <20220906083555.931806-4-ajones@ventanamicro.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220906083555.931806-1-ajones@ventanamicro.com> References: <20220906083555.931806-1-ajones@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220906_013609_722089_ACB1786E X-CRM114-Status: GOOD ( 10.40 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Guests may use the cbo.inval,clean,flush instructions when the CPU has the Zicbom extension and the hypervisor sets henvcfg.CBIE (for cbo.inval) and henvcfg.CBCFE (for cbo.clean,flush). Add Zicbom support for KVM guests which may be enabled and disabled from KVM userspace using the ISA extension ONE_REG API. Signed-off-by: Andrew Jones --- arch/riscv/include/uapi/asm/kvm.h | 1 + arch/riscv/kvm/vcpu.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/arch/riscv/include/uapi/asm/kvm.h b/arch/riscv/include/uapi/asm/kvm.h index b9a4cf36be4b..ed37a4a6e5cf 100644 --- a/arch/riscv/include/uapi/asm/kvm.h +++ b/arch/riscv/include/uapi/asm/kvm.h @@ -99,6 +99,7 @@ enum KVM_RISCV_ISA_EXT_ID { KVM_RISCV_ISA_EXT_M, KVM_RISCV_ISA_EXT_SVPBMT, KVM_RISCV_ISA_EXT_SSTC, + KVM_RISCV_ISA_EXT_ZICBOM, KVM_RISCV_ISA_EXT_MAX, }; diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c index 3f36e79876e7..3ce4f1c11b4c 100644 --- a/arch/riscv/kvm/vcpu.c +++ b/arch/riscv/kvm/vcpu.c @@ -54,6 +54,7 @@ static const unsigned long kvm_isa_ext_arr[] = { RISCV_ISA_EXT_m, RISCV_ISA_EXT_SVPBMT, RISCV_ISA_EXT_SSTC, + RISCV_ISA_EXT_ZICBOM, }; static unsigned long kvm_riscv_vcpu_base2isa_ext(unsigned long base_ext) @@ -795,6 +796,10 @@ static void kvm_riscv_vcpu_update_config(const unsigned long *isa) if (__riscv_isa_extension_available(isa, RISCV_ISA_EXT_SSTC)) henvcfg |= ENVCFG_STCE; + + if (__riscv_isa_extension_available(isa, RISCV_ISA_EXT_ZICBOM)) + henvcfg |= (ENVCFG_CBIE | ENVCFG_CBCFE); + csr_write(CSR_HENVCFG, henvcfg); #ifdef CONFIG_32BIT csr_write(CSR_HENVCFGH, henvcfg >> 32);