From nobody Sat Mar 15 00:57:17 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1736988639; cv=none; d=zohomail.com; s=zohoarc; b=Pp3NwREsdBjaCg0PZ63fPBUScDn79N1TdaWCc7qhJR8HW/kEofSdpni10j6040+3xalCfqvebI6ney5ILFs7LyEVhD/oUNtrBeY/GqJSRL/ZEojAGUWJnRMaiLkNPSvU/jO0oybGOYsXenwwKJB8iQgGFU5QmVCNw19JXFCGqjU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1736988639; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZkbB4hKqhuUPLPk9u5+LDLyPT5P/mS71agdt5ZhzHx0=; b=gPR1swWT6LgHqTaYCmF5Qd5Mhp9qwY+OZ//JbmiRTz5qPT0LLTbhEZxpZqWd0jl5hrIwk5L5HtXMUZRBG4AcLcmYOetf7MYPnud1bc1NhBbckdYtPQVJsd5BSt6RCHuRN1Ne7pasMc0jGu2NNwf7oWyz2btKV4mfP68lSCUKQGc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1736988639945423.6769037159669; Wed, 15 Jan 2025 16:50:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tYE4w-00085j-6o; Wed, 15 Jan 2025 19:49:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tYE4q-00084L-Fs for qemu-devel@nongnu.org; Wed, 15 Jan 2025 19:49:40 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tYE4o-00013K-3c for qemu-devel@nongnu.org; Wed, 15 Jan 2025 19:49:40 -0500 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2162c0f6a39so29612125ad.0 for ; Wed, 15 Jan 2025 16:49:37 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72d406587a1sm10036256b3a.105.2025.01.15.16.49.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 16:49:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736988576; x=1737593376; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ZkbB4hKqhuUPLPk9u5+LDLyPT5P/mS71agdt5ZhzHx0=; b=LzzM433GCYkn1RJyndD6jf3/v6zc/K2iaEy6ZDcjnilG7sgaJGvM2aqN75x3qYAUJj Ca3qqP8EnGVwXcYVQbBPpSa8yTw5CtWO//cOTRwMQf14X1KWtj2W8TAl/oyu3Qc5x8LY rydDoOOAW/ZQDbiSc7IUowYg8F8xlEAUkL8Xg2tHBMZsyvC8Enn8HecnYOwjh9QQVflp 3H/jwcXyIWhvw3EVbpSpD1ltVIv/ygkwGh1Diu6yO9kBtXS2DOyAz+Acve502LUlH+GW 78yJsZ2NMgx8ca9EwEfKxzslLECuA+ahS8Cum2yw/8WLzII6pta1TjNNu3yIU2YlNGlR zGzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736988576; x=1737593376; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZkbB4hKqhuUPLPk9u5+LDLyPT5P/mS71agdt5ZhzHx0=; b=Mtb99MMM0PI5dVhUzKqGkU/9rDAboPDsBO57rRsDoy2HqZyHqYRZlbas8+jvyKda0j t8B1CW1tyU1MRgKvLWfJM61PcYB7+7Ny+E8AH284YLN5rHpZcY5yBOtHoTGof0mzZl23 6IT1XMGHt3p7T4t97XfVQUPx5wPRZeR7LZXc5tnx4wgGh4QLPZuqI0XrT/BJPsKICt8o CIaVilVGb1nR0kSRYBp1C2RhRPVcC9acZMGMa9hAlkpKvrAQUBI7AkzY2WXUxiieFQzx UsL6y5uOUr0TnPLhQhnjX1659gpXdzbZLJwJNiA+ooIal5ex1UIkUKWmZd2S7ujHswVV mT+Q== X-Forwarded-Encrypted: i=1; AJvYcCU+xPv+fgzjAVoFu9Qp0KgYj9hSuUlJEjNOdVZL85GxwJL8RmZlVKRKL45gptQ9Di4ScdTeMfGvRPOm@nongnu.org X-Gm-Message-State: AOJu0YyBSD5pGBr93XTI36kQ5Jt9U2U5lD1bqfLb1SsgnqpQvhmv/l8H ZYdyjavpdjlUtp7xR/S9yjC9EKn8GCtxSH3tJPzEGlbbeEDmnOJ3KY/ZVqAIEhHjQDrEfFGd5s7 U X-Gm-Gg: ASbGncvxyfa/2Crt4oPT25tzzLX6O+DEhXeoMv6INhoUeZUHgt4woD9eSlk9VIfrdrf 2PGoZI0XUXT1fOaqNkUdnR3xOYF9iG9FZ1++nyB+ivwsJZHzzqV4+wkdeO3gGnYoLP/ArGQOmvb fJkEX96zMISFapenFOekz4fZHODCLYlx4w940aOlE4j5N5hK2OHSLAoav1TsZB5g68vYrtJTV55 9wE1iD5AxIPFiGwrWNDmVPRIV6XZMqt2alEQmiT+E7HPGgzkjlgwWy268kKevSK0P0eKw== X-Google-Smtp-Source: AGHT+IFd11hEaCIlqsLgYaiVOBiDsWMyOfgilx4UwUmGCpUEsiTWL0OLIlPWjHh2fPeeylkWLc+qxQ== X-Received: by 2002:a05:6a20:d494:b0:1e1:ad90:dda6 with SMTP id adf61e73a8af0-1eb025ac6damr7932449637.20.1736988576259; Wed, 15 Jan 2025 16:49:36 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 16:49:32 -0800 Subject: [PATCH 1/2] target/riscv: Fix the hpmevent mask MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250115-pmu_minor_fixes-v1-1-c32388defb02@rivosinc.com> References: <20250115-pmu_minor_fixes-v1-0-c32388defb02@rivosinc.com> In-Reply-To: <20250115-pmu_minor_fixes-v1-0-c32388defb02@rivosinc.com> To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Atish Patra , liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com, bin.meng@windriver.com, dbarboza@ventanamicro.com, alistair.francis@wdc.com X-Mailer: b4 0.15-dev-13183 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=atishp@rivosinc.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @rivosinc-com.20230601.gappssmtp.com) X-ZM-MESSAGEID: 1736988642105019000 As per the latest privilege specification v1.13[1], the sscofpmf only reserves first 8 bits of hpmeventX. Update the corresponding masks accordingly. [1]https://github.com/riscv/riscv-isa-manual/issues/1578 Signed-off-by: Atish Patra Reviewed-by: Daniel Henrique Barboza --- target/riscv/cpu_bits.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index f97c48a3943f..b48c0af9d48e 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -9,6 +9,10 @@ (((uint64_t)(val) * ((mask) & ~((mask) << 1))) & \ (uint64_t)(mask))) =20 +#ifndef GENMASK_ULL +#define GENMASK_ULL(h, l) (((~0ULL) >> (63 - (h) + (l))) << (l)) +#endif + /* Extension context status mask */ #define EXT_STATUS_MASK 0x3ULL =20 @@ -933,9 +937,8 @@ typedef enum RISCVException { MHPMEVENTH_BIT_VSINH | \ MHPMEVENTH_BIT_VUINH) =20 -#define MHPMEVENT_SSCOF_MASK _ULL(0xFFFF000000000000) -#define MHPMEVENT_IDX_MASK 0xFFFFF -#define MHPMEVENT_SSCOF_RESVD 16 +#define MHPMEVENT_SSCOF_MASK GENMASK_ULL(63, 56) +#define MHPMEVENT_IDX_MASK (~MHPMEVENT_SSCOF_MASK) =20 /* RISC-V-specific interrupt pending bits. */ #define CPU_INTERRUPT_RNMI CPU_INTERRUPT_TGT_EXT_0 --=20 2.34.1 From nobody Sat Mar 15 00:57:17 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1736988636; cv=none; d=zohomail.com; s=zohoarc; b=AMWTnJtyGvdRPl/PKwL+o/AFChkI68aD1mnoP6WR4mdqw5VW3FHBlJaRt0N5z+Ky8UY1Ya6hMbIjIF0l+nosARROwExtRjnluuQ+Od7KkxPKcPvp+93UTpdCYyjvrsmUNK0BEEyibZQqvUiBJwHPT/wivtYCn4lle+64xzMcyE0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1736988636; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lgkkhzulTnPKcpEBmv5wI+O/YgsMfxY7bx5/eHF5LmE=; b=gd+u5yYStpAiXGK2l5QpeVYYY6SKsQSatI8ucnmGX9XlaH9+MkjvxkqArBHBQm0xVMNaHJUrN8AtI8N3QO6yDWJO9RZg+KDaqQa9qfKD0jBGqC24iJiiVQiU8ql/OBZJws4RCQ5MfHHiQDU0/J0yWZqub0h5/lcGy0lNP37GGSA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17369886364231014.9407890578792; Wed, 15 Jan 2025 16:50:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tYE4x-00086z-Lm; Wed, 15 Jan 2025 19:49:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tYE4q-00084N-ON for qemu-devel@nongnu.org; Wed, 15 Jan 2025 19:49:41 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tYE4o-00013s-TA for qemu-devel@nongnu.org; Wed, 15 Jan 2025 19:49:40 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2162c0f6a39so29612235ad.0 for ; Wed, 15 Jan 2025 16:49:38 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72d406587a1sm10036256b3a.105.2025.01.15.16.49.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 16:49:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736988577; x=1737593377; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=lgkkhzulTnPKcpEBmv5wI+O/YgsMfxY7bx5/eHF5LmE=; b=o60CLDO2mvh6NQbaTgsK++qc94WRToo1DBVvQ4UJSYZ4/I3xwb6EKwXToNHsv+lwd+ bY9HmMT5m4POPLWxiKQZBh+rOfcWg+xQzj8Uz3XeB8LBJ2ZDvJP+FVRQCki5JPl8o1mP PyxPWvQFEy2x4tBFgRplQYSwxSgJGLpDpBuRr8qPpGwmlaRp64QtrJHBqVTxnTwi0qQv TngzHpPvlFBVMnRs0amvls6iYYDwPwkCleAyPeCKCkihLkKy0WFfRJtkA41QVyNn8hgg LNLGi1eFYzAGtB/VRZOlRhNAZ81Hz3zwCRrpXACeshSwkcKeSuv+xE7toLRPD040m4O4 MEnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736988577; x=1737593377; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lgkkhzulTnPKcpEBmv5wI+O/YgsMfxY7bx5/eHF5LmE=; b=GijW09LnBdx6Mt2R7QjF6CZxLJ1RHSABFcp6uW5GLtKPXlN+Pa2ziHc0Az0EoTl8/I GawLc/8chATbmtc/2rWdLkvevWiRdkeBfZVinvyZS7Q75CDlm+0YuWSjYK4O5DvimumL R08GMrg87yDlQb07XC2ResXt2oaPiuGbK+E8sSOaxnOi3Bj8QyXJaJzOxYSh/REaaC6i f1BVHX8LbyHM5rV+egaYehbUAwG36n61ElZedJvY9qh7Hr0KgifH4JpaGSfQNPPdegGD U4rRTNEV/4P0z2Ij4VID6xY6qQKDoRgAqjn+axeXtVeEfONsXd12kPMdaCkgd4STT+hy PfAA== X-Forwarded-Encrypted: i=1; AJvYcCW7BVpAjPA1oIFfea3OWLKNwAlvNMf+n8wKrfecRoOMejNXG3mawQvkLWzusK3tTHDbsk1Cop0qtlCz@nongnu.org X-Gm-Message-State: AOJu0YzVSKiUlb5H1QmGL5+klNTNYJ3il9rapUUY6LOguecwsmcBr6m1 u+tEeCyhKIgMRIv4awFpFusm9SQBBDbwViMVK0ZqHq7rj7x+mfjIKlZAehBzxAvttsvsWrDrHdn q X-Gm-Gg: ASbGncsJhVTkIddT31+0A4g2m9ePGpcO8jJq614HW7UcqKUOiir67GSe9s7OwtDv65h VuZ04FEfhZ+QBZJohRTdmnjU88sLsb3D0rwcywFIhOmvbq9SIrTDiEFZOdHjFXz/RkrGcbhiZy5 SYgQWMVz00RtnWwPqNjuQgI5PqNbZFrNmD5URbu0uGngH0xwcscQ6NPWDZVJiJWTBrVH4yVuqwi oJ+1reJhF38qXMaa9WQ4lntHrrNDHlzQd6jVyIefb7j8rdZb1BkBqJnI7ps5PaFFAoDXg== X-Google-Smtp-Source: AGHT+IGjMuzuTMLEd6F0ofghXzioexFDI380SwoYW+3GBbIYYSuSYVbZvijo0NwwH3yZBu3meDqU3A== X-Received: by 2002:a05:6a20:9188:b0:1e1:9e9f:ae4 with SMTP id adf61e73a8af0-1eb0255b580mr7562798637.13.1736988577273; Wed, 15 Jan 2025 16:49:37 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 16:49:33 -0800 Subject: [PATCH 2/2] target/riscv: Mask out upper sscofpmf bits during validation MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250115-pmu_minor_fixes-v1-2-c32388defb02@rivosinc.com> References: <20250115-pmu_minor_fixes-v1-0-c32388defb02@rivosinc.com> In-Reply-To: <20250115-pmu_minor_fixes-v1-0-c32388defb02@rivosinc.com> To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Atish Patra , liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com, bin.meng@windriver.com, dbarboza@ventanamicro.com, alistair.francis@wdc.com X-Mailer: b4 0.15-dev-13183 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=atishp@rivosinc.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @rivosinc-com.20230601.gappssmtp.com) X-ZM-MESSAGEID: 1736988638094019000 As per the ISA definition, the upper 8 bits in hpmevent are defined by Sscofpmf for privilege mode filtering and overflow bits while the lower 56 bits are desginated for platform specific hpmevent values. For the reset case, mhpmevent value should have zero in lower 56 bits. Software may set the OF bit to indicate disable interrupt. Ensure that correct value is checked after masking while clearing the event encodings. Signed-off-by: Atish Patra Acked-by: Alistair Francis Reviewed-by: Daniel Henrique Barboza --- target/riscv/pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/pmu.c b/target/riscv/pmu.c index cf713663ee56..0408f96e6af8 100644 --- a/target/riscv/pmu.c +++ b/target/riscv/pmu.c @@ -390,7 +390,7 @@ int riscv_pmu_update_event_map(CPURISCVState *env, uint= 64_t value, * Expected mhpmevent value is zero for reset case. Remove the current * mapping. */ - if (!value) { + if (!(value & MHPMEVENT_IDX_MASK)) { g_hash_table_foreach_remove(cpu->pmu_event_ctr_map, pmu_remove_event_map, GUINT_TO_POINTER(ctr_idx)); --=20 2.34.1