Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp860635pxb; Tue, 1 Feb 2022 11:57:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJyL5ci10lorMRd5Jy2zAgErdaxXZa8IkmVJBnvPqB+3y9YDGBB/jQh0B8+NsKkGcQaJyv5/ X-Received: by 2002:a50:ab1a:: with SMTP id s26mr26432685edc.85.1643745478430; Tue, 01 Feb 2022 11:57:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643745478; cv=none; d=google.com; s=arc-20160816; b=rFhURWEPbKy+WUWwCgv8P+9vteCNmK1L1dr1MRw2hi9orddRgNc6Cg7X1ubJ4/Sr2r FZtiYQhQuW5rubTw7MS56QjJ4jkqTKqS25ndz8HxDt08M2hf+V80C3v6fxRFiJ4eeGIc vIsIkaPWkvsekiGfJ7DCv0wyo5qM9ImKhXuU/lps44uoRBDX0lprtSMeo+omS7D7Cx4x PbNJ90wiTJIeS9eo7EETpodW2Oy8ncBlxM5NDkNdMb2EXFWm7LMj5zlk/BkIJkSMfFhv ISineGj98xwKIWdZpaJ00hrK6EZb9jbNCTw24jxTUGmwEgljSODToVdc+2d+k9y7qds3 eU1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=sK8JR4wpkvls27MNU4s8AnmC/+c6q6h3rMPNEZP9Prw=; b=wK2VyYUiRWI1tnkEILJRGiowMelpw7aA9Bqj//koLtsgNcxAqhj4haHXjlxSKRQQwX zi6BUF1mm3Z2ZCryOFCwBUtl8XRqfm5e+q1PO7aGu9AlfFnar+27JvBp40E3Z3sA9pBI CHIMbpFp9mDJngccOmWY9nqBHPeaSGfFVSOxhHdNAs0rU+4YzmugzhZMEmtnaWtZIRN+ bgQibAb6OszoAm9ruR9ynOhBmfAFCy3xpHMBvNH6BYA2WNOqK0jk2E0zqrpRMYdT7bNJ 8RJxl3Aa2Wc6tdcBY/S4Y1/7K8dvmVPqZn0Jtcn/D7h32amYCmuOgqHBhJL8TYOyx+vH MSOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ventanamicro.com header.s=google header.b=kV2WIOTc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f9si11162865edd.415.2022.02.01.11.57.33; Tue, 01 Feb 2022 11:57:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ventanamicro.com header.s=google header.b=kV2WIOTc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244057AbiAaLHg (ORCPT + 99 others); Mon, 31 Jan 2022 06:07:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1359040AbiAaLEQ (ORCPT ); Mon, 31 Jan 2022 06:04:16 -0500 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5F73AC061762 for ; Mon, 31 Jan 2022 03:03:25 -0800 (PST) Received: by mail-ej1-x630.google.com with SMTP id m4so41919149ejb.9 for ; Mon, 31 Jan 2022 03:03:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=sK8JR4wpkvls27MNU4s8AnmC/+c6q6h3rMPNEZP9Prw=; b=kV2WIOTc9oeQLWaV5sGXLC5+V2MEcy/nFB1aBE7UYHZknUJxEqn2H0ruaImw1LSudd YBNzrjQWd/WX2Hwg40tGHGWkbqDBoouxh0A/Ayeb9CepJhcdoHJDOuEDKwUofDr3YDeM hypgPlPu6mQinAPkGCyMdCsKQFU1fjATndvTJhEYqTY98McJfIDfjY9+HkzOqsVitBdG Xqq2dS+6YDzqE1kx/SWP4oOd8ZWxeaWizxmD8bzbtJrPZjZL0RU+y2OTYfMbjmhvmp3z 8k476frHL7MmRK5tcQZCY+9vUWimfJMI8mN1upj5vNfqM0LhYOiHXz53dPIBVr83Q+i+ 5dZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=sK8JR4wpkvls27MNU4s8AnmC/+c6q6h3rMPNEZP9Prw=; b=3AV2Wdtt14W0dOwQ0/6nBg3mw8vnKcVIUcjzrgl0jG+uKqw4iffA+qUH8KubBd9oQA fxFCT8r1mTBWGNEUX/zp8XifTMH4RnSuVvffwpYpk4qg2pMW5h6gYfu42Stoj6xo5Lfi 936FpijiHtkIx6BuZ+66pTeZX8EAIyYICktRgOTkxl5j+9i8s/7CE1iFlq2kapNsOq09 qRpdCuGdoMWff0lnrbcU47eMmb/GCY0FMOKUQQhjQ392Fd3Fd1EJo6a5lMMpD77AmSXm mqJfvziOpxKXkEiwLhrGVGuHlf92yhfh0Uor/pyndU1hI0Au+xeQm8ERHI2bQNmieFJn yPXA== X-Gm-Message-State: AOAM532WZIKlUdtw4pAD173cmTiXQmjrhV/+0wMoRdwLSlvbrMi4cJoW k47Z8RvffGgi8JocMdWFIGe1CA== X-Received: by 2002:a17:907:1b0f:: with SMTP id mp15mr16717542ejc.493.1643627003918; Mon, 31 Jan 2022 03:03:23 -0800 (PST) Received: from platform-PowerEdge-T440.dc1.ventanamicro.com ([117.248.109.221]) by smtp.gmail.com with ESMTPSA id b7sm14338971edv.58.2022.01.31.03.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jan 2022 03:03:23 -0800 (PST) From: Mayuresh Chitale To: anup@brainfault.org Cc: atishp@atishpatra.org, palmer@dabbelt.com, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Mayuresh Chitale Subject: [PATCH] RISC-V: KVM: make CY, TM, and IR counters accessible in VU mode Date: Mon, 31 Jan 2022 16:33:07 +0530 Message-Id: <20220131110307.1684739-1-mchitale@ventanamicro.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Those applications that run in VU mode and access the time CSR cause a virtual instruction trap as Guest kernel currently does not initialize the scounteren CSR.   To fix this, we should make CY, TM, and IR counters accessibile by default in VU mode (similar to OpenSBI). Fixes: a33c72faf2d73 ("RISC-V: KVM: Implement VCPU create, init and destroy functions") Cc:stable@vger.kernel.org Signed-off-by: Mayuresh Chitale --- arch/riscv/kvm/vcpu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c index 0c5239e05721..caaf824347b9 100644 --- a/arch/riscv/kvm/vcpu.c +++ b/arch/riscv/kvm/vcpu.c @@ -90,6 +90,7 @@ int kvm_arch_vcpu_precreate(struct kvm *kvm, unsigned int id) int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu) { struct kvm_cpu_context *cntx; + struct kvm_vcpu_csr *reset_csr = &vcpu->arch.guest_reset_csr; /* Mark this VCPU never ran */ vcpu->arch.ran_atleast_once = false; @@ -106,6 +107,9 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu) cntx->hstatus |= HSTATUS_SPVP; cntx->hstatus |= HSTATUS_SPV; + /* By default, make CY, TM, and IR counters accessible in VU mode */ + reset_csr->scounteren=0x7; + /* Setup VCPU timer */ kvm_riscv_vcpu_timer_init(vcpu); -- 2.25.1