From nobody Fri Oct 3 00:00:52 2025 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 67F5F302CD7 for ; Tue, 9 Sep 2025 07:03:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401408; cv=none; b=bua+xSO/g+S6j+Gi+/r+GG0wEJMX/z3PpyTXyrzl3lun8BTlh6kN1lyycGOXdXjWZE257DDLsj5dCnaok5/vJcZuUBM4aaFjR3HZI+5ZrFnh5zWW2EjxT2DEMdts/bjzq7OENSmVGul+qT3qE76UaZDDYvMztbp4inSVQpEPPt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401408; c=relaxed/simple; bh=m2E8W7DiSx6Ltrasj+rnR9WEkMr09MKsEoyxo0F+Klg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qcK2Pw/yLgvyDcSSgAXw4xikcC3/bOIn6TBKkxk9A8jDkx+FR7Jcf5G0+9zYjj1W+EccEAd4BRbSlKNNmog1Xe73OqqA7hrPvniea8ubVwg3Cefl0UscxgdfMpr+0G7NbsheBSxVvRIHyA9+u+leveSnSSEGn7bEvTFrDf6TZyA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=VoVuFYPM; arc=none smtp.client-ip=209.85.210.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="VoVuFYPM" Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-7723f0924a3so6970757b3a.2 for ; Tue, 09 Sep 2025 00:03:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1757401406; x=1758006206; darn=vger.kernel.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=QppemwXg72umVaHol/lc8lTgDOnrssZANvnDyByXBzA=; b=VoVuFYPMGG7mF6nKhQqKrHMYMOIktE34kOU97h38mZSiLfPSc6hA5CD2IfnxEdQZNr 4FZxCHIgMnW5fyPmUGx4tYQ0WhZ6eCeMB+FbMCq12p1+MuTvi+Yv8nonOXkq4WiPvYWs EOJ5Gvk9o+ONJqH4heQLAJduA/8ZxP/Kcc2gmepDGq5CL16gJfpeGsao4u2OfwtZjqle YJQztVnhN3ESQKULvNTNSOU/pbnYIX5XIY2fEQUU1vTJVS6mN4ilasSa9qPnn50EAuim ko7+k/dnMdZU9BdYVQmeutlSGeajiFIcLfsZWCRW6rMP62RSOqI5Avm6hf9E0IZP3G+9 kZFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757401406; x=1758006206; 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=QppemwXg72umVaHol/lc8lTgDOnrssZANvnDyByXBzA=; b=C8k45T1vV0c5fUTV5NbTXIfvtHnS34NWuLu+hse8uz5KvROkStCicwmMQbm0Fk6oVt OZdHYC2dJz4YUCRqLNAhzcTinvS5e6jQ/xnvP6kUp0iS/Tt4mb9iehF2DJEer9CAk5tD MOLOhqSmWDlK2DEnKUOYSJ5lA7S4mQCEO6B5i5MW57BvHoCVCwzysOK2N/KrP8Vlf/j0 AL4+BU+dHJY8nAtWE9bZsK/JOWtE+KdebR9h4A2Sk/xiygKFDGfl7zIExPstvT+O9oQ1 TwZSl2O7389ABss/2muSZ0iy7mToQXU8bbylfJNWqcXVA/id0Kzwt2o7OdsW38fQInne nDWw== X-Forwarded-Encrypted: i=1; AJvYcCUOzofM0t5ftu6+y8wkMIwNfutX07ic/jWj7JVq3EL6EofJIYjvMVfsr6EMl0pvv8Gno7UQu3kgXWVj1R4=@vger.kernel.org X-Gm-Message-State: AOJu0YzWQUrp/lnjxxlQdpWgIYodlWPmznovdwRti6D1rgB1QzsWxq3n 1grdrByIQuYdLCZCSPvHUwhwumRYOssMmUBIVwgQdb4uiw4HZ3ObtSbRw2Zu9Re6t+w= X-Gm-Gg: ASbGncuQF0Pqxw7LvYIfQ+ukqw8iOWMmGLJHVbBMeprVD3L6za3X/h37+u1PSrzfa4g X9ikuQ9ELL7isTaABw2YEko1ESDysy8kJbQrZOBm+VcD3BO2IRVxUu9QrV+2/IN7yNyYm/ytN7j A8pgaQw26hezc3uCtxteBI13D49kNL8mOpUKhMf7xvayKZUCwH+p6RDuN4aHBIAzendfcUH5e2S 6Uk/SpJbkKYE5tH8VU0wy3VmE5Q3hVu8AhBkOFCCUIOEZO3//2Zwzcw6BLhn8Sz8gfk74qspgOP XVKjfBD5nQ8OostWtgdK/HoLMWyZa2XuEooZFzAi6Jz33PvQn+UMsM9gNQxZzncTwJFuNxrKbC0 /SEAWBQbOn3GVu22JnOuNpI4o3UNvi6te1jI= X-Google-Smtp-Source: AGHT+IGTI0+CANiAOY9dQTvuxmq7UvW41+dk3xf0GTORfOZzG86GOBRQUviZ8wH9nFVkT6u1ya+N/Q== X-Received: by 2002:a05:6a00:928c:b0:772:4b05:789e with SMTP id d2e1a72fcca58-7742ddadae6mr13433332b3a.2.1757401405716; Tue, 09 Sep 2025 00:03:25 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-774662c7158sm1025535b3a.72.2025.09.09.00.03.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 00:03:25 -0700 (PDT) From: Atish Patra Date: Tue, 09 Sep 2025 00:03:20 -0700 Subject: [PATCH v6 1/8] drivers/perf: riscv: Add SBI v3.0 flag Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250909-pmu_event_info-v6-1-d8f80cacb884@rivosinc.com> References: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> In-Reply-To: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> To: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale Cc: linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-50721 There are new PMU related features introduced in SBI v3.0. 1. Raw Event v2 which allows mhpmeventX value to be 56 bit wide. 2. Get Event info function to do a bulk query at one shot. Reviewed-by: Anup Patel Signed-off-by: Atish Patra Acked-by: Paul Walmsley --- drivers/perf/riscv_pmu_sbi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c index 698de8ddf895..cfd6946fca42 100644 --- a/drivers/perf/riscv_pmu_sbi.c +++ b/drivers/perf/riscv_pmu_sbi.c @@ -63,6 +63,7 @@ PMU_FORMAT_ATTR(event, "config:0-47"); PMU_FORMAT_ATTR(firmware, "config:62-63"); =20 static bool sbi_v2_available; +static bool sbi_v3_available; static DEFINE_STATIC_KEY_FALSE(sbi_pmu_snapshot_available); #define sbi_pmu_snapshot_available() \ static_branch_unlikely(&sbi_pmu_snapshot_available) @@ -1452,6 +1453,9 @@ static int __init pmu_sbi_devinit(void) if (sbi_spec_version >=3D sbi_mk_version(2, 0)) sbi_v2_available =3D true; =20 + if (sbi_spec_version >=3D sbi_mk_version(3, 0)) + sbi_v3_available =3D true; + ret =3D cpuhp_setup_state_multi(CPUHP_AP_PERF_RISCV_STARTING, "perf/riscv/pmu:starting", pmu_sbi_starting_cpu, pmu_sbi_dying_cpu); --=20 2.43.0 From nobody Fri Oct 3 00:00:52 2025 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5917A30505E for ; Tue, 9 Sep 2025 07:03:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401408; cv=none; b=aAmRxwPNO671bE8IYcgb4M8OgHnBCnWH06vCULmrHDmJjrY50fr2YWJ9tFdagsDx8A2Xacs8BglC3qP/2CQnHMIJD2MW4dmY/De725Ol1n55VcRCV5a+9hEVOIflwCGJBPgE3Cnkyw7DSZXjZOstbkZTrF3o/zL93btygfourvo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401408; c=relaxed/simple; bh=GrmWjsHjJE1tKkgqTBfGMNOmAW/o67tHqaBrQuxr/k0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jobDTaJJHGmSgTKw5TIeTf9sstDAHUbjsy2cMHt7Cq/kpOQg5N7OpZ4rKQeavPeeNZIMZitW4FBmOHxqdbKVhKQnSftkG4XF/V+0pw3TtJSfKMaIe8Vx1prPBWz9VwsaF0MaXDEPZamJxBpun+kKRvuwd1Mkz+XWlwEzU+gnq7M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=TLkVAUIi; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="TLkVAUIi" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-76e6cbb991aso4622580b3a.1 for ; Tue, 09 Sep 2025 00:03:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1757401407; x=1758006207; darn=vger.kernel.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=nnmZ8NkUlTZK5sUaPCJm86+BW+WwmmyvWnWnb0ftr9I=; b=TLkVAUIi1+x9BEXNzSdEt8kYgATGJ+86iH46LXHJ/DmRkTvpCoU145FLhEXGoYjKOA /ocUCzgyuKKSlXyeNtlvqj8MpaiTXmWSW7IQEyjd0pyGmXEWaX3edLyqBkIuVPy22Hev Iwa1JdQej0g3M6c2DUngCkvQfJQF5xMLKZW+/MHEqGzHALIHuFbK/NOYPskE0LueRsBR I18+zNcTGQtr4vMIEuFQQXWr76pTAiYLS9U9/yCdDhU8nFWA13DD9ga3i9EEWR8cf8JY yFwdiK51uoAEFeQXwpGrYc/sz9AHVA8JfX4Hot1M+6f+5MoNRtOIFYve70fdyclk8Wjj 0b+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757401407; x=1758006207; 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=nnmZ8NkUlTZK5sUaPCJm86+BW+WwmmyvWnWnb0ftr9I=; b=P67ztkmNc7+SEJPtS09fRpn4zavsypniwg9gShPFKl1HkB1/FS/ZHVrAjG7ExlpIKm I7MpkUxcSn7GrnixBUZ2HAhLod+WnH3eQgYFMy43O0VJUmFS8OliZtr5obC9BppY6f5p Kma7lDDnU8y8VsFOP9BVHOgIquGWRL3Jkx8cIPA4Kd/Gs2OPyDCtbzOmlMu1Tck3tkiR i596FmagN6Rn7kL3OurLkEIrmCuMWAst2ATGh9BMSj0VArKaIEwZ/fbQUSLgUCh1jphr MKJ90L7L1TFqFxc7yBVCEJUkV6pq694y1N1YHdGGAlb/4XHzgV6Ho3ihpPSOS2sxkK9z AdYQ== X-Forwarded-Encrypted: i=1; AJvYcCUqIC3qWnAeEHAaVsCtH6ROxKoln4yAfe3EwBHKoHfQ/PBDDKNu3L4t+kgm/qU1hrllf2IZ53P6qgLtREE=@vger.kernel.org X-Gm-Message-State: AOJu0YxynzYOU9Enad8ncVlMC4m6vtYkUGo3iQnkOdzSeKnxkCY9Vw2+ wimTxGPbgdkqegqRvMfTbrD16hI3z6tVUev/TND+e9jzT8U8KaK5ebBjfu17C7sgaXw= X-Gm-Gg: ASbGnctkIDBuavPViY+/aT5z7sMAUEe6mE5Fg8JDZW2yxn4xL4Vr2LbvZhO27/K0tUQ cwVF5lP7Tj3yDEvs5/u9g3T2Zd28mMyZWAoTElxWiGqyonAnSZHCrvZ2IeR5t3fkTLVIsiVTKcb Ug0PFqCUgPn18RuTC7ZeCD04Onj9xOBqOQZ9CBPjJd+RKJC2K/mjN5TuAP3prscOK9fLFE9j2oR K4vT5EidUX2X+YtTR98g9pGf/MNIGKZZU/9sEPW1qwQ5taYoKmzq52y+6TN2tX7MsW3ufNhaKlv pIdBYmfuLCmrvSE1StcJgNJGcVHn8/ZMpNEMP+haCu03jjNFUBoGEZrirmQqxN9PvyEfCniHaOY j5PY1n++2ROf/IRWS1tUVvvy6TylVymNgLQM= X-Google-Smtp-Source: AGHT+IFiF52xK3MSeJlrfdLEf2QXk0FrME34XTCcy1LZr3L0VGDJ3dsrdXofGTbO3mimC4eb9yJmOw== X-Received: by 2002:a05:6a00:1793:b0:76e:99fc:db8d with SMTP id d2e1a72fcca58-7742dd1252emr12562314b3a.3.1757401406596; Tue, 09 Sep 2025 00:03:26 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-774662c7158sm1025535b3a.72.2025.09.09.00.03.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 00:03:26 -0700 (PDT) From: Atish Patra Date: Tue, 09 Sep 2025 00:03:21 -0700 Subject: [PATCH v6 2/8] drivers/perf: riscv: Add raw event v2 support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250909-pmu_event_info-v6-2-d8f80cacb884@rivosinc.com> References: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> In-Reply-To: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> To: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale Cc: linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-50721 SBI v3.0 introduced a new raw event type that allows wider mhpmeventX width to be programmed via CFG_MATCH. Use the raw event v2 if SBI v3.0 is available. Reviewed-by: Anup Patel Signed-off-by: Atish Patra Acked-by: Paul Walmsley --- arch/riscv/include/asm/sbi.h | 4 ++++ drivers/perf/riscv_pmu_sbi.c | 16 +++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h index 341e74238aa0..b0c41ef56968 100644 --- a/arch/riscv/include/asm/sbi.h +++ b/arch/riscv/include/asm/sbi.h @@ -161,7 +161,10 @@ struct riscv_pmu_snapshot_data { =20 #define RISCV_PMU_RAW_EVENT_MASK GENMASK_ULL(47, 0) #define RISCV_PMU_PLAT_FW_EVENT_MASK GENMASK_ULL(61, 0) +/* SBI v3.0 allows extended hpmeventX width value */ +#define RISCV_PMU_RAW_EVENT_V2_MASK GENMASK_ULL(55, 0) #define RISCV_PMU_RAW_EVENT_IDX 0x20000 +#define RISCV_PMU_RAW_EVENT_V2_IDX 0x30000 #define RISCV_PLAT_FW_EVENT 0xFFFF =20 /** General pmu event codes specified in SBI PMU extension */ @@ -219,6 +222,7 @@ enum sbi_pmu_event_type { SBI_PMU_EVENT_TYPE_HW =3D 0x0, SBI_PMU_EVENT_TYPE_CACHE =3D 0x1, SBI_PMU_EVENT_TYPE_RAW =3D 0x2, + SBI_PMU_EVENT_TYPE_RAW_V2 =3D 0x3, SBI_PMU_EVENT_TYPE_FW =3D 0xf, }; =20 diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c index cfd6946fca42..3644bed4c8ab 100644 --- a/drivers/perf/riscv_pmu_sbi.c +++ b/drivers/perf/riscv_pmu_sbi.c @@ -59,7 +59,7 @@ asm volatile(ALTERNATIVE( \ #define PERF_EVENT_FLAG_USER_ACCESS BIT(SYSCTL_USER_ACCESS) #define PERF_EVENT_FLAG_LEGACY BIT(SYSCTL_LEGACY) =20 -PMU_FORMAT_ATTR(event, "config:0-47"); +PMU_FORMAT_ATTR(event, "config:0-55"); PMU_FORMAT_ATTR(firmware, "config:62-63"); =20 static bool sbi_v2_available; @@ -527,8 +527,10 @@ static int pmu_sbi_event_map(struct perf_event *event,= u64 *econfig) break; case PERF_TYPE_RAW: /* - * As per SBI specification, the upper 16 bits must be unused - * for a hardware raw event. + * As per SBI v0.3 specification, + * -- the upper 16 bits must be unused for a hardware raw event. + * As per SBI v2.0 specification, + * -- the upper 8 bits must be unused for a hardware raw event. * Bits 63:62 are used to distinguish between raw events * 00 - Hardware raw event * 10 - SBI firmware events @@ -537,8 +539,12 @@ static int pmu_sbi_event_map(struct perf_event *event,= u64 *econfig) =20 switch (config >> 62) { case 0: - /* Return error any bits [48-63] is set as it is not allowed by the sp= ec */ - if (!(config & ~RISCV_PMU_RAW_EVENT_MASK)) { + if (sbi_v3_available) { + if (!(config & ~RISCV_PMU_RAW_EVENT_V2_MASK)) { + *econfig =3D config & RISCV_PMU_RAW_EVENT_V2_MASK; + ret =3D RISCV_PMU_RAW_EVENT_V2_IDX; + } + } else if (!(config & ~RISCV_PMU_RAW_EVENT_MASK)) { *econfig =3D config & RISCV_PMU_RAW_EVENT_MASK; ret =3D RISCV_PMU_RAW_EVENT_IDX; } --=20 2.43.0 From nobody Fri Oct 3 00:00:52 2025 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3562630597D for ; Tue, 9 Sep 2025 07:03:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401410; cv=none; b=NLbx01BvzP1GbtlSdykgfhAmrVbvfRcD3rGml10+GX5JQy7SLSSwru/CoWqS5DZSgKkElYUCOPNWj35rztYj8buPPuPietDoNmFgMO9uN9q35sbpGfHOWr3Rtr9nHBwffz8XU8W6MjuN9DrbrM4uTz2MxwTWEvJs1uvULHxQ2UQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401410; c=relaxed/simple; bh=e7KhWyihGNeHQtmANrYGamMrWZjvNUfv+srLihtniBI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sN5SXkvGL+zWJDMjucQtVEGMFXh7rDjk6T0pWcHOl2v/ccmDmyHYELbkRc/gVF618XcQn79q6SxyowJ8lxqIgOMmsjlrhJ3XSkm1m9HfHHC9iVZxiW8IrjFUX2MTmmDUqhj9zcs5CDCUXVtZB5/nYHCl73Fp/vERCnqnIqj58+c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=N1E/HJe2; arc=none smtp.client-ip=209.85.210.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="N1E/HJe2" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-77256200f1bso4583308b3a.3 for ; Tue, 09 Sep 2025 00:03:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1757401407; x=1758006207; darn=vger.kernel.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=goqLKtDob+ZNX+w3rmmnq6+zF8DlfuvYjDiKv2ieDbU=; b=N1E/HJe2XfSWukdNA17LW04R5vXX2EnQM/AjD6fK6Uv4HKXw6MCiXmp35efxtGosCe tzJwq7qowlNgMg3NKlnPrN2HiW+/wEWliiFq63hdtmc5Ap+gGHNOSVWPFqn2m1c+Uf2Z A2DvjJp8how1xD9zw7u8LP4tni9+dN47NOwYbMBiRQw/BzG1G2pcaiBrOkRiM7TAbAEH ijw8+k3C/1nhuPhfLJ1KcFCFerxcYgkhPWxPcZsblCugurdHDcwqiMQFKNdvfet95XTP rkskltf+8STQilT4lxOx720khqEZhW0kpyza5WMw84hRVtqQuudNjhXWsJZIsq8sE4LK QUEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757401407; x=1758006207; 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=goqLKtDob+ZNX+w3rmmnq6+zF8DlfuvYjDiKv2ieDbU=; b=TAzJmzTvK1at6NdP29Xy7Kjbwia5wbPhaH3lw6OUcxwcl5LBPkExeW/CrP6f+Pwr9q z6cA4uNInn1m1Cwg9Rhz8kl+HSSW9JXvmlKHyQhv6DQU4lx6ucfno2sx7UWsA1PVmGHt rOy/geB7VQf8kgmnYwJKwl2BPYAjQwZ1KFUvlnkBQ+h385gm4drj8VPyPZNp1TzLlAH/ Xq/6wqg5bboDYncxxHPhHNpUBewu37J84bsW4U51+pK5b28j1Uo4T8APmACV3GKUKCvW ELAAP/SwG/Ys32IyWiiWy1baAA3bMi1WB5m8pDPD9GHSfKWEjcwm8Gi58d3kU4d2VDiv ooDw== X-Forwarded-Encrypted: i=1; AJvYcCXL1QXamJcvfN7Kzx3102u0SVHakV5akOoXBTnaTE+8Bk69FiqCkRD052u1QGakNnwsDwcKIHzAfU87ta4=@vger.kernel.org X-Gm-Message-State: AOJu0YxwgKhqrv3gdIcRNaQ4duLJZK3OtJW8vI8tncaIsBshGnABF8UX eqLfycijy8v6S/uQF9arumS1BETH8nnLplnv52IxnqWFEimVDSnf+RcrxB0Z3LlC+7c= X-Gm-Gg: ASbGncv85FNE+faZ3XPgDcJTc8YjmIriNIVU9R3utdaPrJ5fwn2gfzDFNep43rg359s y4wIUELmeExj3DdrVaqijOq+eeYVFqQP0mFn6d+xhvVCF1mqS0KWtGcZK7WNOXCaqoVD3cpizM6 34cBbnCu6Y8ViWiwm8C2ssAGsJJhqFMs8f0B7IAb2F1TlPZaeSHjfsglnZaccoR/Y4dHlE6ckZF AQiUbFavkYqE8aJm9CG0YyVlp1jQSNa1VSqE73/k/cUi07cPYw4bpOrc5A7BBlHetOfVp4ZbAGO xjN4D5flYyxiShjhiPsJ9KYddheE1EZak1Us8Pj3bUqGMaCdIKhKMSOPHyXxakXgVyQ/9C4vHZC ElnN5Ovhcz+4anQE/IuZLmzzdzJthrOZjF1w= X-Google-Smtp-Source: AGHT+IGJbDnkT5SHhTAhiO5Q6ljc1ugcvXc+gcWNPs7wch9qaoN42+cmkfKz9M/HNQWQv+Jtvr6PpA== X-Received: by 2002:a05:6a20:3d83:b0:250:429b:9e56 with SMTP id adf61e73a8af0-2533e9476eamr16763215637.8.1757401407457; Tue, 09 Sep 2025 00:03:27 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-774662c7158sm1025535b3a.72.2025.09.09.00.03.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 00:03:27 -0700 (PDT) From: Atish Patra Date: Tue, 09 Sep 2025 00:03:22 -0700 Subject: [PATCH v6 3/8] RISC-V: KVM: Add support for Raw event v2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250909-pmu_event_info-v6-3-d8f80cacb884@rivosinc.com> References: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> In-Reply-To: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> To: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale Cc: linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-50721 SBI v3.0 introduced a new raw event type v2 for wider mhpmeventX programming. Add the support in kvm for that. Reviewed-by: Anup Patel Signed-off-by: Atish Patra Acked-by: Paul Walmsley --- arch/riscv/kvm/vcpu_pmu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/riscv/kvm/vcpu_pmu.c b/arch/riscv/kvm/vcpu_pmu.c index 78ac3216a54d..15d71a7b75ba 100644 --- a/arch/riscv/kvm/vcpu_pmu.c +++ b/arch/riscv/kvm/vcpu_pmu.c @@ -60,6 +60,7 @@ static u32 kvm_pmu_get_perf_event_type(unsigned long eidx) type =3D PERF_TYPE_HW_CACHE; break; case SBI_PMU_EVENT_TYPE_RAW: + case SBI_PMU_EVENT_TYPE_RAW_V2: case SBI_PMU_EVENT_TYPE_FW: type =3D PERF_TYPE_RAW; break; @@ -128,6 +129,9 @@ static u64 kvm_pmu_get_perf_event_config(unsigned long = eidx, uint64_t evt_data) case SBI_PMU_EVENT_TYPE_RAW: config =3D evt_data & RISCV_PMU_RAW_EVENT_MASK; break; + case SBI_PMU_EVENT_TYPE_RAW_V2: + config =3D evt_data & RISCV_PMU_RAW_EVENT_V2_MASK; + break; case SBI_PMU_EVENT_TYPE_FW: if (ecode < SBI_PMU_FW_MAX) config =3D (1ULL << 63) | ecode; --=20 2.43.0 From nobody Fri Oct 3 00:00:52 2025 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 641A6307493 for ; Tue, 9 Sep 2025 07:03:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401411; cv=none; b=teK7lus2/927GgR6EUTPH0U8hMPGTOfjXcMKPWBlOmAyl5/fnZQLHnj0mi8R2zyO5cZrgeKlwOurzdih8nKsDGA07hrZJ5YX2mOgjnCzHfxogCtY8TZi76Uu2ovYtOu4U8I6nDLEDOLioII8daEOxy3Uw6RHsaDswgn1L4I1u2c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401411; c=relaxed/simple; bh=ENW7GuaIXflZlkamnfI2inEfAQKZtiw6G9K4fh9vW/U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ee5SNleCzAVF+/C//349UzyX4OatBNfusAgxvJX1Sph2ZlbWtXDVBrQiGXBH72v3b0ArIh4zlrigdf4bxNH5VxdWO4Dss9CzTOrrb6fGzg63O7m+RFOLr/7Kthr3wafRSQ0f+t3MKHe+Or4YGGWRdJcuW6pSMuWEDaX54iThqBs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=BJC5rkY9; arc=none smtp.client-ip=209.85.210.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="BJC5rkY9" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-7704f3c46ceso4233079b3a.2 for ; Tue, 09 Sep 2025 00:03:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1757401408; x=1758006208; darn=vger.kernel.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=9dRa5PaUBeFzVfA0hx3uwaou6s1gEdQIGt2dK1PIyuI=; b=BJC5rkY9Tgq1YBzNmEeUmhHrVqTjUidBSSZkJRZDMdNe5FoLV3EdKfm/z+l9F/9VSP QlGCHl0kQW5gn6h6lOHCFRIQdH1TURM5XL1QL1XMKUMPL/9i9O/VlzVru4L+yWvH3gXd 3ssw35ms2R8G4Lwrm11f7wZw3fXWJ4BAQib0x2eFa4A2hTEgXfsh9fGm75pF0DVtOH4D u+gsn53Z7iVnV5XivnjCwdiyNKSHRCdhiEKaowHeEuhqSwnHxGkxdOYTzN61PR0aaVuy cunZS8OYc3uAvfqnIMOYOvd5UUBvzVdI7En8dExBkMRftvSbuRZ7XQhIpQvpXQQHLWxw apUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757401408; x=1758006208; 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=9dRa5PaUBeFzVfA0hx3uwaou6s1gEdQIGt2dK1PIyuI=; b=O0b5Oq0tlJYM8DFHQvm00Hym6m7SMmNTHEZwHKXdh3QH582/T6OM8BT5bXWhQP4BYA sTLC4vv9UFRVscImQV/uU+bC/Htc/bICqdMPlqM39iTDTVUAylIj446cAmCzLfbxrqkV KU5Pc8Srb05tcCkicMvwYJBTOogQNy6kgorlwT5yAu1daL8EeJmWU2AfoxkcKW8c3xrx vMA9TpguFGoqDNHLg20GEKgWxPqDxPCd5iOCu/TZPFof1y/VDw7rNr5RKJfO3STnVb66 x2yt8w5wXJdvblo1KYf6rR9U3nRVpNM+2xiklobYnqbou89I3AzastmoBfcAEqeYdM8p 74YQ== X-Forwarded-Encrypted: i=1; AJvYcCWdijsnzKTZk5B0LYPsI7B+ep4Nq3Uis4f+lOOtCRu8oibweXd3qDd6Ij7JEeG6BsrnBXXCN2YR+bAV0ms=@vger.kernel.org X-Gm-Message-State: AOJu0YzGXmB2nRCS0GSRlinNndubMI+hcG5JGEdN5K4n5pgXJoVjnfLb 76tzO3XSovNkzaOElAo/efOzqEuLR+CvDVgcyTq35W1V/M1s8egI2xNtiyEacxuI0lg= X-Gm-Gg: ASbGncvUfRQ+Bij7QFxxgc2fmAxfnb5A1QQx2QCYL2Sd8I53czOlpJbwRdQsePVys8f xi8GH2yH2RgRJpbeONXI5mnVmO+uMCMRT0FfsP6IEtAyH2lcTwFBZG+g1bzxWdlSZg1kopvXFcD Iq9iCA/PhqnBckDGELWkTkpDeWzVa+8FY5S7BV8K4/6QRh8OzwURNwnNcnu9RayO30xaX/B7uC6 Z7fGcQWjlkXPnuJrUoVNVxqr1Fiudywrdi2au4ArAPw7shpYnCRpYmPMPT914vshhiTmN8KgJ2k YTvU6TdRuN6YrQxAnnNrKaD5mjSeHyMZOsnl0fKDPrs8r4REeza/iAFKDa05rd7nX5VactbgIXV B7s3kWEAuhhofq9Ml+uysGh3eUKW+KV12s7A= X-Google-Smtp-Source: AGHT+IHQ7m+RNx+VZbx6+x5n6qPiRRjPXoeUDxkNH4USJJaxaAIcWa8rdFoCF9FteEtF09OaqEBqIw== X-Received: by 2002:a05:6a00:23d3:b0:772:7ddd:3fe0 with SMTP id d2e1a72fcca58-7742dca7ec3mr13266216b3a.2.1757401408326; Tue, 09 Sep 2025 00:03:28 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-774662c7158sm1025535b3a.72.2025.09.09.00.03.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 00:03:28 -0700 (PDT) From: Atish Patra Date: Tue, 09 Sep 2025 00:03:23 -0700 Subject: [PATCH v6 4/8] drivers/perf: riscv: Implement PMU event info function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250909-pmu_event_info-v6-4-d8f80cacb884@rivosinc.com> References: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> In-Reply-To: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> To: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale Cc: linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-50721 With the new SBI PMU event info function, we can query the availability of the all standard SBI PMU events at boot time with a single ecall. This improves the bootime by avoiding making an SBI call for each standard PMU event. Since this function is defined only in SBI v3.0, invoke this only if the underlying SBI implementation is v3.0 or higher. Signed-off-by: Atish Patra Acked-by: Paul Walmsley Reviewed-by: Anup Patel --- arch/riscv/include/asm/sbi.h | 9 ++++++ drivers/perf/riscv_pmu_sbi.c | 69 ++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 78 insertions(+) diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h index b0c41ef56968..5ca7cebc13cc 100644 --- a/arch/riscv/include/asm/sbi.h +++ b/arch/riscv/include/asm/sbi.h @@ -136,6 +136,7 @@ enum sbi_ext_pmu_fid { SBI_EXT_PMU_COUNTER_FW_READ, SBI_EXT_PMU_COUNTER_FW_READ_HI, SBI_EXT_PMU_SNAPSHOT_SET_SHMEM, + SBI_EXT_PMU_EVENT_GET_INFO, }; =20 union sbi_pmu_ctr_info { @@ -159,6 +160,14 @@ struct riscv_pmu_snapshot_data { u64 reserved[447]; }; =20 +struct riscv_pmu_event_info { + u32 event_idx; + u32 output; + u64 event_data; +}; + +#define RISCV_PMU_EVENT_INFO_OUTPUT_MASK 0x01 + #define RISCV_PMU_RAW_EVENT_MASK GENMASK_ULL(47, 0) #define RISCV_PMU_PLAT_FW_EVENT_MASK GENMASK_ULL(61, 0) /* SBI v3.0 allows extended hpmeventX width value */ diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c index 3644bed4c8ab..a6c479f853e1 100644 --- a/drivers/perf/riscv_pmu_sbi.c +++ b/drivers/perf/riscv_pmu_sbi.c @@ -299,6 +299,66 @@ static struct sbi_pmu_event_data pmu_cache_event_map[P= ERF_COUNT_HW_CACHE_MAX] }, }; =20 +static int pmu_sbi_check_event_info(void) +{ + int num_events =3D ARRAY_SIZE(pmu_hw_event_map) + PERF_COUNT_HW_CACHE_MAX= * + PERF_COUNT_HW_CACHE_OP_MAX * PERF_COUNT_HW_CACHE_RESULT_MAX; + struct riscv_pmu_event_info *event_info_shmem; + phys_addr_t base_addr; + int i, j, k, result =3D 0, count =3D 0; + struct sbiret ret; + + event_info_shmem =3D kcalloc(num_events, sizeof(*event_info_shmem), GFP_K= ERNEL); + if (!event_info_shmem) + return -ENOMEM; + + for (i =3D 0; i < ARRAY_SIZE(pmu_hw_event_map); i++) + event_info_shmem[count++].event_idx =3D pmu_hw_event_map[i].event_idx; + + for (i =3D 0; i < ARRAY_SIZE(pmu_cache_event_map); i++) { + for (j =3D 0; j < ARRAY_SIZE(pmu_cache_event_map[i]); j++) { + for (k =3D 0; k < ARRAY_SIZE(pmu_cache_event_map[i][j]); k++) + event_info_shmem[count++].event_idx =3D + pmu_cache_event_map[i][j][k].event_idx; + } + } + + base_addr =3D __pa(event_info_shmem); + if (IS_ENABLED(CONFIG_32BIT)) + ret =3D sbi_ecall(SBI_EXT_PMU, SBI_EXT_PMU_EVENT_GET_INFO, lower_32_bits= (base_addr), + upper_32_bits(base_addr), count, 0, 0, 0); + else + ret =3D sbi_ecall(SBI_EXT_PMU, SBI_EXT_PMU_EVENT_GET_INFO, base_addr, 0, + count, 0, 0, 0); + if (ret.error) { + result =3D -EOPNOTSUPP; + goto free_mem; + } + + for (i =3D 0; i < ARRAY_SIZE(pmu_hw_event_map); i++) { + if (!(event_info_shmem[i].output & RISCV_PMU_EVENT_INFO_OUTPUT_MASK)) + pmu_hw_event_map[i].event_idx =3D -ENOENT; + } + + count =3D ARRAY_SIZE(pmu_hw_event_map); + + for (i =3D 0; i < ARRAY_SIZE(pmu_cache_event_map); i++) { + for (j =3D 0; j < ARRAY_SIZE(pmu_cache_event_map[i]); j++) { + for (k =3D 0; k < ARRAY_SIZE(pmu_cache_event_map[i][j]); k++) { + if (!(event_info_shmem[count].output & + RISCV_PMU_EVENT_INFO_OUTPUT_MASK)) + pmu_cache_event_map[i][j][k].event_idx =3D -ENOENT; + count++; + } + } + } + +free_mem: + kfree(event_info_shmem); + + return result; +} + static void pmu_sbi_check_event(struct sbi_pmu_event_data *edata) { struct sbiret ret; @@ -316,6 +376,15 @@ static void pmu_sbi_check_event(struct sbi_pmu_event_d= ata *edata) =20 static void pmu_sbi_check_std_events(struct work_struct *work) { + int ret; + + if (sbi_v3_available) { + ret =3D pmu_sbi_check_event_info(); + if (ret) + pr_err("pmu_sbi_check_event_info failed with error %d\n", ret); + return; + } + for (int i =3D 0; i < ARRAY_SIZE(pmu_hw_event_map); i++) pmu_sbi_check_event(&pmu_hw_event_map[i]); =20 --=20 2.43.0 From nobody Fri Oct 3 00:00:52 2025 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 29E70306B3A for ; Tue, 9 Sep 2025 07:03:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401412; cv=none; b=aKXjZq+U9AMNxRjj3RJgVmbx/HQNwiMYcXLxQaIXL+V2devsZCkkKwLxO+yJT9jiyuNtdgcSfQd15EjN2kQiH8eGxLNPKGpHuyd7PaU06j3a91iKaXGKZoR6roxSL1y5z+S31pRml2zeMVrFzYgdzkX7Vse5mvj4HIhysjv9ARM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401412; c=relaxed/simple; bh=svw1+F/QSAWZ266yLbotWzuw0G4qZyFOk7WzXnoCDRw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=inmA4OJkv3egKblYi3ZH2vOFsw0jarxUUm4S8MSaLcwcydLvgmlGINbGUehdSbSDZCiFKRvqnt43289HqlAzvDBSYLzm10OxADWCUVoPd+tse46WSNVxVQbhwzO2vpHAChdBvX4xfWt0cPUkGzT1mBYCcfUire8YoYoDfuxBpYQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=chRy63U4; arc=none smtp.client-ip=209.85.216.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="chRy63U4" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-32326e8005bso4794999a91.3 for ; Tue, 09 Sep 2025 00:03:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1757401409; x=1758006209; darn=vger.kernel.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=LhZMcUxsy6JYqWOC3or2cXZEhT1Fgv3FiewmctcehUQ=; b=chRy63U4hT4O294JzbmTsp3/ha9/3hHro++0aX5QsvD4NT5OVa7IFzLTlcgi0x+f+3 XajxYiIcAYZwQ+G/DTjQgNdPPdGLQ4BjKQ9C1xaz7wrC/mlb7K0wFk8j0bSL++9k+Wqf Ki28nVoBqHHSGFbEFShu9OKv/uf8DbXR6vpe8l7C7kyiP7cT216Cpc44hzSgioeGXuhs +A9N0XgM+5U6qhGyd8V+4wJvPbtCYBSy4jWQYz6dX4DdLJ1nWUfhtIBDOTC+MPYrqpQm iZjpp107V0oLCnHcNO4HVxjRHKvLKHr3welLjaouy/bYpCV/UnwFCrBRa/B0fXImr7j7 X/NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757401409; x=1758006209; 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=LhZMcUxsy6JYqWOC3or2cXZEhT1Fgv3FiewmctcehUQ=; b=qo8WDhCMGiNFle2sLam30qVCOZkI1GsVD0y80EOIXRdKF3SaNvsWQdZSOMoM0H/60c 2hmEPjELa+ddUwAKx33bLW2QuTHqTZzHG4KJ5l00beqYRxx29iLm08WctGf+n+6GQ9BC RXgsiXDXxZ1cv/j/LaHATqOtMQYerEf055NsErdcopwydgEnddDUNWeZsWGbc+f63QyY cVcAr/SoQsYeaQ+aLppYafM5E1e/KvZTfkKZhRefigVEmqG6zYig/ETB/QGPDhOmhS4e epiFPJHVeqWykE+nicYhaoCpP0mDeJ+hVOPWO64aA8d90nl6Vqp8fCxMr3rYMwGBeheN /CeQ== X-Forwarded-Encrypted: i=1; AJvYcCVYiAdZmcHk4sNjlNc2fx8MyOoS/EhNyx+BcLfvJK8hN2GgqhUyJV4vIft1vOmLGr6VNAGKqp0Duv/Nhzw=@vger.kernel.org X-Gm-Message-State: AOJu0YwEzddjAlbp2DDs6f56AwbDUDgC/Vx4gzlY3JBm/xEVL+lG+kyW O5KKmiwnZEMlcb21Zs2UJv7RBz1d4Vp90cUEO72UtQPsKYEOH5xJR1m+vuTTBp8XROk= X-Gm-Gg: ASbGnct7Bvypr4c12cQKd7Wvw9GgZWSbfN/9yWXO/vejejNgxQE+HXs+jdwdJ/u5KB4 WQPGn/XtCyTyyvCRLoFO34GF9tyGYjzHZmnF1xyohj9+0I9xUUFj8QF1bqbBRc0PDYdRW4CvXi6 sUQnwFB+Cu5HD8A85DGZzXkibSbxxGneNZsybWRG0vqLFEN6nrZQ69/3b8MGw/tsNRc+DorTnVu vEoa6u7SRgpGTMoFRcictue0mTOmmm1vx4sMdgCWb8x8WSZ0gGEaioQ4TMcTLEKOkFXF+G8Yc+Z uhoZHL1A2p1NFQN3CjlmJXEB0q+/bqIbAx4k/TXnu+LA/xW42EUCS2kIv1DvGxo6CvDlNXRT2il 1Y57qEYSWHD9p4I7EnPrtsil4mT/DVkybnGYoNSpVtQEvAg== X-Google-Smtp-Source: AGHT+IFakW9GI3X7KiwSZ6TB6r+qigeRh7zHPYJe3gZqGJm1TvXIR0iLLkZpUst0NZABNZYOk/hzVA== X-Received: by 2002:a17:90b:3f4c:b0:32b:6132:5f8c with SMTP id 98e67ed59e1d1-32d43f772c9mr13153440a91.18.1757401409453; Tue, 09 Sep 2025 00:03:29 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-774662c7158sm1025535b3a.72.2025.09.09.00.03.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 00:03:29 -0700 (PDT) From: Atish Patra Date: Tue, 09 Sep 2025 00:03:24 -0700 Subject: [PATCH v6 5/8] drivers/perf: riscv: Export PMU event info function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250909-pmu_event_info-v6-5-d8f80cacb884@rivosinc.com> References: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> In-Reply-To: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> To: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale Cc: linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-50721 The event mapping function can be used in event info function to find out the corresponding SBI PMU event encoding during the get_event_info function as well. Refactor and export it so that it can be invoked from kvm and internal driver. Signed-off-by: Atish Patra Reviewed-by: Anup Patel Acked-by: Paul Walmsley --- drivers/perf/riscv_pmu_sbi.c | 122 ++++++++++++++++++++++---------------= ---- include/linux/perf/riscv_pmu.h | 1 + 2 files changed, 68 insertions(+), 55 deletions(-) diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c index a6c479f853e1..0392900d828e 100644 --- a/drivers/perf/riscv_pmu_sbi.c +++ b/drivers/perf/riscv_pmu_sbi.c @@ -100,6 +100,7 @@ static unsigned int riscv_pmu_irq; /* Cache the available counters in a bitmask */ static unsigned long cmask; =20 +static int pmu_event_find_cache(u64 config); struct sbi_pmu_event_data { union { union { @@ -412,6 +413,71 @@ static bool pmu_sbi_ctr_is_fw(int cidx) return (info->type =3D=3D SBI_PMU_CTR_TYPE_FW) ? true : false; } =20 +int riscv_pmu_get_event_info(u32 type, u64 config, u64 *econfig) +{ + int ret =3D -ENOENT; + + switch (type) { + case PERF_TYPE_HARDWARE: + if (config >=3D PERF_COUNT_HW_MAX) + return -EINVAL; + ret =3D pmu_hw_event_map[config].event_idx; + break; + case PERF_TYPE_HW_CACHE: + ret =3D pmu_event_find_cache(config); + break; + case PERF_TYPE_RAW: + /* + * As per SBI v0.3 specification, + * -- the upper 16 bits must be unused for a hardware raw event. + * As per SBI v2.0 specification, + * -- the upper 8 bits must be unused for a hardware raw event. + * Bits 63:62 are used to distinguish between raw events + * 00 - Hardware raw event + * 10 - SBI firmware events + * 11 - Risc-V platform specific firmware event + */ + switch (config >> 62) { + case 0: + if (sbi_v3_available) { + /* Return error any bits [56-63] is set as it is not allowed by the sp= ec */ + if (!(config & ~RISCV_PMU_RAW_EVENT_V2_MASK)) { + if (econfig) + *econfig =3D config & RISCV_PMU_RAW_EVENT_V2_MASK; + ret =3D RISCV_PMU_RAW_EVENT_V2_IDX; + } + /* Return error any bits [48-63] is set as it is not allowed by the sp= ec */ + } else if (!(config & ~RISCV_PMU_RAW_EVENT_MASK)) { + if (econfig) + *econfig =3D config & RISCV_PMU_RAW_EVENT_MASK; + ret =3D RISCV_PMU_RAW_EVENT_IDX; + } + break; + case 2: + ret =3D (config & 0xFFFF) | (SBI_PMU_EVENT_TYPE_FW << 16); + break; + case 3: + /* + * For Risc-V platform specific firmware events + * Event code - 0xFFFF + * Event data - raw event encoding + */ + ret =3D SBI_PMU_EVENT_TYPE_FW << 16 | RISCV_PLAT_FW_EVENT; + if (econfig) + *econfig =3D config & RISCV_PMU_PLAT_FW_EVENT_MASK; + break; + default: + break; + } + break; + default: + break; + } + + return ret; +} +EXPORT_SYMBOL_GPL(riscv_pmu_get_event_info); + /* * Returns the counter width of a programmable counter and number of hardw= are * counters. As we don't support heterogeneous CPUs yet, it is okay to just @@ -577,7 +643,6 @@ static int pmu_sbi_event_map(struct perf_event *event, = u64 *econfig) { u32 type =3D event->attr.type; u64 config =3D event->attr.config; - int ret =3D -ENOENT; =20 /* * Ensure we are finished checking standard hardware events for @@ -585,60 +650,7 @@ static int pmu_sbi_event_map(struct perf_event *event,= u64 *econfig) */ flush_work(&check_std_events_work); =20 - switch (type) { - case PERF_TYPE_HARDWARE: - if (config >=3D PERF_COUNT_HW_MAX) - return -EINVAL; - ret =3D pmu_hw_event_map[event->attr.config].event_idx; - break; - case PERF_TYPE_HW_CACHE: - ret =3D pmu_event_find_cache(config); - break; - case PERF_TYPE_RAW: - /* - * As per SBI v0.3 specification, - * -- the upper 16 bits must be unused for a hardware raw event. - * As per SBI v2.0 specification, - * -- the upper 8 bits must be unused for a hardware raw event. - * Bits 63:62 are used to distinguish between raw events - * 00 - Hardware raw event - * 10 - SBI firmware events - * 11 - Risc-V platform specific firmware event - */ - - switch (config >> 62) { - case 0: - if (sbi_v3_available) { - if (!(config & ~RISCV_PMU_RAW_EVENT_V2_MASK)) { - *econfig =3D config & RISCV_PMU_RAW_EVENT_V2_MASK; - ret =3D RISCV_PMU_RAW_EVENT_V2_IDX; - } - } else if (!(config & ~RISCV_PMU_RAW_EVENT_MASK)) { - *econfig =3D config & RISCV_PMU_RAW_EVENT_MASK; - ret =3D RISCV_PMU_RAW_EVENT_IDX; - } - break; - case 2: - ret =3D (config & 0xFFFF) | (SBI_PMU_EVENT_TYPE_FW << 16); - break; - case 3: - /* - * For Risc-V platform specific firmware events - * Event code - 0xFFFF - * Event data - raw event encoding - */ - ret =3D SBI_PMU_EVENT_TYPE_FW << 16 | RISCV_PLAT_FW_EVENT; - *econfig =3D config & RISCV_PMU_PLAT_FW_EVENT_MASK; - break; - default: - break; - } - break; - default: - break; - } - - return ret; + return riscv_pmu_get_event_info(type, config, econfig); } =20 static void pmu_sbi_snapshot_free(struct riscv_pmu *pmu) diff --git a/include/linux/perf/riscv_pmu.h b/include/linux/perf/riscv_pmu.h index 701974639ff2..f82a28040594 100644 --- a/include/linux/perf/riscv_pmu.h +++ b/include/linux/perf/riscv_pmu.h @@ -89,6 +89,7 @@ static inline void riscv_pmu_legacy_skip_init(void) {}; struct riscv_pmu *riscv_pmu_alloc(void); #ifdef CONFIG_RISCV_PMU_SBI int riscv_pmu_get_hpm_info(u32 *hw_ctr_width, u32 *num_hw_ctr); +int riscv_pmu_get_event_info(u32 type, u64 config, u64 *econfig); #endif =20 #endif /* CONFIG_RISCV_PMU */ --=20 2.43.0 From nobody Fri Oct 3 00:00:52 2025 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1E32A3081BA for ; Tue, 9 Sep 2025 07:03:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401412; cv=none; b=jD7nrDUKpsY1BFsolqhEXuYE7zXOVQYfHSaRTVhlYR1Hf/ghRxVy/MMMN7g8I/uNNfNfwQ7g+LTnoeSL5lZUwtL3M2+mxBN6185DQU8jMGubktxyNItrNOPmHD8VKm0Xh/Qh7rDRVCetcvcDLmh91+8k0NUIzpecB5PHiUY4DWg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401412; c=relaxed/simple; bh=FShHH1HSMrmoVp5u1PcL4F5vjxrP/Jvx+dnFDhWtXGY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IsA4uWWv/sJKo+pSBxZ69kzLR//oxs8wNc67Vs64uT+pk7g9l8PO5hH5JAMKPC3A0Iv2/epxH5EOIKQGAxyhCcojDoIh0otN10cFb7ttP+ayyVWQIV8PYDlCw0cpZjN5xlcvRHeaXukmz98pIuJpfU3mA5kAmqStXtkFQ1no6dE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=TDz56iMr; arc=none smtp.client-ip=209.85.216.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="TDz56iMr" Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-32b5d8bea85so3574436a91.1 for ; Tue, 09 Sep 2025 00:03:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1757401410; x=1758006210; darn=vger.kernel.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=53RW3r37vVd/uOGEJeJ40vwWJphKZpVppDFV/CpDLs4=; b=TDz56iMrt1ib0qgISpTvRAUQZ6DsWjZMgBX8xvglndagXbPz/4t2DsGbgPRFMa7hZw /6dhdZKjkXUFCCNlhPB1MtZCK9Et9wizJ6w0mGExScOMCyMMywZ5zfFPk9JLnl3VKDvW r/6wolsGLUyhJBkHIaalnBlSk/mZwCP5GxHCv5T4GZ761GBCT2oN58Eo7FONXQu5asm8 PxhC9Sx2mcBCIG634ob8WIsMHPjw3EusJt3jCRsEpqhWVKF/rMuqJDtr4id8pPtaYDV9 BDJnVW2alpeRQcAl+uPEsfqkN2uSNdlJACz1I4tsmqFHp38Gv93OQkfJGp+yLuewJMsX Wdfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757401410; x=1758006210; 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=53RW3r37vVd/uOGEJeJ40vwWJphKZpVppDFV/CpDLs4=; b=LuALi7GUjSxaKdLHvjVkW8wlwlq1qAxAf7Zl4LNJYRm1uO6xEzQiS1nxmeHSGomaNy KobZgPwF5BGfPfbkHiyf2BgXJu5D6bgywbDBD8/RFbPylCnh7CYp992Ha9uC1LhrLuRs ouJqIAQFajwRvmLMew0MG12v36X8mwqSGLVQXB5IXKpXtJQ+hd9fFtHhf85v3JzpeJIK 0BtDRX6VkZLMh8vlRkl4u3MsPz9Ho+UufhcdcbR/raMViWVEopjwt7B9P/kox1XWLvGI ikZbT6kCXyF2M6+ZJyfNzXL8QTF/gGcqtZ/0d77xd/TN63ybybCnM87+AFU6Uok16fJE xwcg== X-Forwarded-Encrypted: i=1; AJvYcCXUSS7dzMFpZVxZ6NhoHKa71oJ0KVSGC4KkjGtk7CMuagpUQnJ5Xh19VLIK7QpNXjoqAla2uYrRpG+AkUM=@vger.kernel.org X-Gm-Message-State: AOJu0YxU/BePX9xE9f3xq8/J091WHHC11jClPHl6bzSFcRN9PfqxMntz VakZNdFv+0GHkApXc/zj9Cq9TevsCqnGLe/GExsCDZG/sIIY1rHOXuvxMFAlZUW5qmY= X-Gm-Gg: ASbGncsbO6A//xKTWFKViDAOv+wDkYEH0VbrjZhE+lvf7JHY5CaLJ82dzfiK9GVOF9F INi9Vyq06JMeGYZQVAh8+auM6bBUUlfvcVSOSvCtS4oSK8GA9ak4Pp1vvJAnIQ0iP6MYGn+HY8z yBtIFg+WZWGFX2E0k3E83TSH1gMZ+OU6/6hxMne6uj6p/AWh1RyMxfCbRccQLduE1AfSmbnjXP7 4C03XpoECaTcHLcsXmi8OSFT7beqphPbKDKQdrr+1vK9U9rkzzEVKCjjQDOqv9a5Fs8oR/z+ek/ a/dQ3xEa340X513PhJe7SYhrTDAh2eNVO6aGr3rp9fqGSls60o9m+G18IBvqwjEbxSuMCoM14dB 6gsqscWDOp1xfI+eqna618zom4v21cdFuFU//NePHoRc8tQ== X-Google-Smtp-Source: AGHT+IEp7M2YTd5oqLJWntqYzx+W66KU/8IVhi9uG5EgartrnOvK3S6t6vrkn2Q3yP3sdZUpu5Y3+A== X-Received: by 2002:a17:90b:48c9:b0:32b:96f2:e2c9 with SMTP id 98e67ed59e1d1-32bbe104088mr17623995a91.12.1757401410327; Tue, 09 Sep 2025 00:03:30 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-774662c7158sm1025535b3a.72.2025.09.09.00.03.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 00:03:29 -0700 (PDT) From: Atish Patra Date: Tue, 09 Sep 2025 00:03:25 -0700 Subject: [PATCH v6 6/8] RISC-V: KVM: No need of explicit writable slot check Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250909-pmu_event_info-v6-6-d8f80cacb884@rivosinc.com> References: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> In-Reply-To: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> To: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale Cc: linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra , Sean Christopherson X-Mailer: b4 0.15-dev-50721 There is not much value in checking if a memslot is writable explicitly before a write as it may change underneath after the check. Rather, return invalid address error when write_guest fails as it checks if the slot is writable anyways. Suggested-by: Sean Christopherson Signed-off-by: Atish Patra Acked-by: Paul Walmsley Reviewed-by: Anup Patel --- arch/riscv/kvm/vcpu_pmu.c | 11 ++--------- arch/riscv/kvm/vcpu_sbi_sta.c | 9 ++------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/arch/riscv/kvm/vcpu_pmu.c b/arch/riscv/kvm/vcpu_pmu.c index 15d71a7b75ba..f8514086bd6b 100644 --- a/arch/riscv/kvm/vcpu_pmu.c +++ b/arch/riscv/kvm/vcpu_pmu.c @@ -409,8 +409,6 @@ int kvm_riscv_vcpu_pmu_snapshot_set_shmem(struct kvm_vc= pu *vcpu, unsigned long s int snapshot_area_size =3D sizeof(struct riscv_pmu_snapshot_data); int sbiret =3D 0; gpa_t saddr; - unsigned long hva; - bool writable; =20 if (!kvpmu || flags) { sbiret =3D SBI_ERR_INVALID_PARAM; @@ -432,19 +430,14 @@ int kvm_riscv_vcpu_pmu_snapshot_set_shmem(struct kvm_= vcpu *vcpu, unsigned long s goto out; } =20 - hva =3D kvm_vcpu_gfn_to_hva_prot(vcpu, saddr >> PAGE_SHIFT, &writable); - if (kvm_is_error_hva(hva) || !writable) { - sbiret =3D SBI_ERR_INVALID_ADDRESS; - goto out; - } - kvpmu->sdata =3D kzalloc(snapshot_area_size, GFP_ATOMIC); if (!kvpmu->sdata) return -ENOMEM; =20 + /* No need to check writable slot explicitly as kvm_vcpu_write_guest does= it internally */ if (kvm_vcpu_write_guest(vcpu, saddr, kvpmu->sdata, snapshot_area_size)) { kfree(kvpmu->sdata); - sbiret =3D SBI_ERR_FAILURE; + sbiret =3D SBI_ERR_INVALID_ADDRESS; goto out; } =20 diff --git a/arch/riscv/kvm/vcpu_sbi_sta.c b/arch/riscv/kvm/vcpu_sbi_sta.c index cc6cb7c8f0e4..caaa28460ca4 100644 --- a/arch/riscv/kvm/vcpu_sbi_sta.c +++ b/arch/riscv/kvm/vcpu_sbi_sta.c @@ -85,8 +85,6 @@ static int kvm_sbi_sta_steal_time_set_shmem(struct kvm_vc= pu *vcpu) unsigned long shmem_phys_hi =3D cp->a1; u32 flags =3D cp->a2; struct sbi_sta_struct zero_sta =3D {0}; - unsigned long hva; - bool writable; gpa_t shmem; int ret; =20 @@ -111,13 +109,10 @@ static int kvm_sbi_sta_steal_time_set_shmem(struct kv= m_vcpu *vcpu) return SBI_ERR_INVALID_ADDRESS; } =20 - hva =3D kvm_vcpu_gfn_to_hva_prot(vcpu, shmem >> PAGE_SHIFT, &writable); - if (kvm_is_error_hva(hva) || !writable) - return SBI_ERR_INVALID_ADDRESS; - + /* No need to check writable slot explicitly as kvm_vcpu_write_guest does= it internally */ ret =3D kvm_vcpu_write_guest(vcpu, shmem, &zero_sta, sizeof(zero_sta)); if (ret) - return SBI_ERR_FAILURE; + return SBI_ERR_INVALID_ADDRESS; =20 vcpu->arch.sta.shmem =3D shmem; vcpu->arch.sta.last_steal =3D current->sched_info.run_delay; --=20 2.43.0 From nobody Fri Oct 3 00:00:52 2025 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D43A3019B3 for ; Tue, 9 Sep 2025 07:03:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401413; cv=none; b=kjdhShkEjMCDofi8dnmz5hJATWKIIfXFgtR1b2pFkdYcYnZco9H4gF9w9EQSCYj1p1hWAlKKoSdDuPEdDqXCrqDm3xvqcptnna+R6P7fI+g+A/71XS7vLcwUmlncIyCQ9Ojq0mmWTDjoKaDg5VuWc2ILWfFDyXwhm9Bc124au7M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401413; c=relaxed/simple; bh=ooi3OGf1oecfma3ZZjoqxpvaZ+wyxfduuHE3R1xZ6to=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GDGbeUmY5l7V3x92LKRURvzBYRDu+7Dec+QT/oBxukWMCDNw0u6uG1WjXGWdcmFRxfFYVOuo1mBEj1+Ahe72L3Bc3WsBDCz3lRcs0nIcpwjYd40kARoXQ6h5xDYD3WDj6S4JKjuMgzsXR2QiTkVtXibObItU+wS7YSWQ8YX13Vg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=ToUPNSGs; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="ToUPNSGs" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-32b6108f2d5so3777126a91.3 for ; Tue, 09 Sep 2025 00:03:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1757401411; x=1758006211; darn=vger.kernel.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=1acfgimCOFblXvFIi2ykb4JvdpnCtTT9WTI2WJXrlYg=; b=ToUPNSGs5GEfZwVxVNh8uEdwXFZjZgMgXFxR9xwSlZWLZb5xOZxT5sfOJEn5hSraVQ /SL2eO8Q9NXpwm7naD6Y2BG8eMCOfIoCc0JH+mTcVljLW2Kk84lmZx6ZF10mLOMDk7LH 8Sq4KtxPWzSgGnIBDHaTnJUKtkXVG6efqOO9pgE6CrawRcxSrL7kUwP9eLLWIo78bu0c n/NEu/oMre1H9pQVV3VOEPXLSxTIEdjDFFEqB0VWelgOITK9RCVnp/KWEcpkcn/syD3a ANicO0INdeHwXeax/zfxJZYnERYrqNcHNByGc0R9/HW6uBkMVjwNSqM6pp4yXNoNAvN+ 9Z0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757401411; x=1758006211; 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=1acfgimCOFblXvFIi2ykb4JvdpnCtTT9WTI2WJXrlYg=; b=k/G6HhF1c9ptiF1EclgyOhCFsw5issFHPW2vCoV+OpFSo35Kjc1T93js5aMjNQXSjA XuC+e2GzlBrkPRIccdtTAroclAX6JgmqGHmPa3iPHqFHb/a4NPSey1+siJIPK8/Mv1Tl hMlgidVR5dwfuUaL5fvRG0JExDX/aNLrp2SghrRbJqm5EV/DTJ4Xn9ybSUrjW34AOYVj mOVqAoAL3az5ynXARyWuYKnDuLUpi5GlhjhPQyXhd6DmnvvR7isqxeLEH01xrgge4CIi UwYFdiAjqf6EeBBU1aY8lS+bykGlaeJ7mhH/5eV71B2rpGFnbRK9CCIORBgPURf4Gvu4 Hj6Q== X-Forwarded-Encrypted: i=1; AJvYcCWQj1M3fZtKWfEcrtbFpl6eEb262DjsKBTuJCjFJsjh0XbsodlGuEO57Dsw4SwrRnevkc56qoJUiECZVsc=@vger.kernel.org X-Gm-Message-State: AOJu0YzSeNRapKWtg56QD6TURkSXALjKCJfsvTAn1aBsmtk16PEfvUBw KjQ4cl4xASF2/afuvqcYgaEKDd7fcbvSJX49DZhL/Wu5IjB9ojjNBfav9UgdhYpnZLU= X-Gm-Gg: ASbGnct4jB9iKb9LL9Jnaj6TLGC9v4ZlkdPvY7wPl/3XxQBCHrVxhwOoEdrXKO0iXdq ZoEoBw+GXzrVRY6EMOsExVVlQS8PkOTny+zwILYkXeIYJvu+hNy83U9oRnfoX7qC/A8gdb+XfPS j+8QXuReeY+a70byrDOP44ep32w+9TSx6nQkaxVoEItDfDPVuoV0RM6JuFJO0kLXg9TJCNTXlZ6 LgQ0dQGyR2YeZvCVTpn73V5IuoWDfEPyda6S8AlORxxr6gbaZPpAJ3uzyLWk3/Y3lgSoWjg/D2t IBvH4kESjMiYQCqRW2ygxaNLRKQWDUhRkL6v0W4XA7axcbwBAobDp4fnQoOPilIZxO0+A1OG34u zdpfQMcszCLIF8ETMmFXgXqgO2mGsPVhxwkI= X-Google-Smtp-Source: AGHT+IHkDiF/6YwaQUzgE/xNLZqLa3zDoLihcHBPhzjoYmHrHw+d+76R53kpaEg8N/1vJrkgHwEwEw== X-Received: by 2002:a17:90b:35c6:b0:32c:2c5:e21 with SMTP id 98e67ed59e1d1-32d43f85d9emr12290210a91.32.1757401411327; Tue, 09 Sep 2025 00:03:31 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-774662c7158sm1025535b3a.72.2025.09.09.00.03.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 00:03:30 -0700 (PDT) From: Atish Patra Date: Tue, 09 Sep 2025 00:03:26 -0700 Subject: [PATCH v6 7/8] RISC-V: KVM: Implement get event info function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250909-pmu_event_info-v6-7-d8f80cacb884@rivosinc.com> References: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> In-Reply-To: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> To: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale Cc: linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-50721 The new get_event_info funciton allows the guest to query the presence of multiple events with single SBI call. Currently, the perf driver in linux guest invokes it for all the standard SBI PMU events. Support the SBI function implementation in KVM as well. Reviewed-by: Anup Patel Signed-off-by: Atish Patra Acked-by: Paul Walmsley --- arch/riscv/include/asm/kvm_vcpu_pmu.h | 3 ++ arch/riscv/kvm/vcpu_pmu.c | 59 +++++++++++++++++++++++++++++++= ++++ arch/riscv/kvm/vcpu_sbi_pmu.c | 3 ++ 3 files changed, 65 insertions(+) diff --git a/arch/riscv/include/asm/kvm_vcpu_pmu.h b/arch/riscv/include/asm= /kvm_vcpu_pmu.h index 1d85b6617508..9a930afc8f57 100644 --- a/arch/riscv/include/asm/kvm_vcpu_pmu.h +++ b/arch/riscv/include/asm/kvm_vcpu_pmu.h @@ -98,6 +98,9 @@ void kvm_riscv_vcpu_pmu_init(struct kvm_vcpu *vcpu); int kvm_riscv_vcpu_pmu_snapshot_set_shmem(struct kvm_vcpu *vcpu, unsigned = long saddr_low, unsigned long saddr_high, unsigned long flags, struct kvm_vcpu_sbi_return *retdata); +int kvm_riscv_vcpu_pmu_event_info(struct kvm_vcpu *vcpu, unsigned long sad= dr_low, + unsigned long saddr_high, unsigned long num_events, + unsigned long flags, struct kvm_vcpu_sbi_return *retdata); void kvm_riscv_vcpu_pmu_deinit(struct kvm_vcpu *vcpu); void kvm_riscv_vcpu_pmu_reset(struct kvm_vcpu *vcpu); =20 diff --git a/arch/riscv/kvm/vcpu_pmu.c b/arch/riscv/kvm/vcpu_pmu.c index f8514086bd6b..a2fae70ee174 100644 --- a/arch/riscv/kvm/vcpu_pmu.c +++ b/arch/riscv/kvm/vcpu_pmu.c @@ -449,6 +449,65 @@ int kvm_riscv_vcpu_pmu_snapshot_set_shmem(struct kvm_v= cpu *vcpu, unsigned long s return 0; } =20 +int kvm_riscv_vcpu_pmu_event_info(struct kvm_vcpu *vcpu, unsigned long sad= dr_low, + unsigned long saddr_high, unsigned long num_events, + unsigned long flags, struct kvm_vcpu_sbi_return *retdata) +{ + struct riscv_pmu_event_info *einfo =3D NULL; + int shmem_size =3D num_events * sizeof(*einfo); + gpa_t shmem; + u32 eidx, etype; + u64 econfig; + int ret; + + if (flags !=3D 0 || (saddr_low & (SZ_16 - 1) || num_events =3D=3D 0)) { + ret =3D SBI_ERR_INVALID_PARAM; + goto out; + } + + shmem =3D saddr_low; + if (saddr_high !=3D 0) { + if (IS_ENABLED(CONFIG_32BIT)) { + shmem |=3D ((gpa_t)saddr_high << 32); + } else { + ret =3D SBI_ERR_INVALID_ADDRESS; + goto out; + } + } + + einfo =3D kzalloc(shmem_size, GFP_KERNEL); + if (!einfo) + return -ENOMEM; + + ret =3D kvm_vcpu_read_guest(vcpu, shmem, einfo, shmem_size); + if (ret) { + ret =3D SBI_ERR_FAILURE; + goto free_mem; + } + + for (int i =3D 0; i < num_events; i++) { + eidx =3D einfo[i].event_idx; + etype =3D kvm_pmu_get_perf_event_type(eidx); + econfig =3D kvm_pmu_get_perf_event_config(eidx, einfo[i].event_data); + ret =3D riscv_pmu_get_event_info(etype, econfig, NULL); + einfo[i].output =3D (ret > 0) ? 1 : 0; + } + + ret =3D kvm_vcpu_write_guest(vcpu, shmem, einfo, shmem_size); + if (ret) { + ret =3D SBI_ERR_INVALID_ADDRESS; + goto free_mem; + } + + ret =3D 0; +free_mem: + kfree(einfo); +out: + retdata->err_val =3D ret; + + return 0; +} + int kvm_riscv_vcpu_pmu_num_ctrs(struct kvm_vcpu *vcpu, struct kvm_vcpu_sbi_return *retdata) { diff --git a/arch/riscv/kvm/vcpu_sbi_pmu.c b/arch/riscv/kvm/vcpu_sbi_pmu.c index e4be34e03e83..a020d979d179 100644 --- a/arch/riscv/kvm/vcpu_sbi_pmu.c +++ b/arch/riscv/kvm/vcpu_sbi_pmu.c @@ -73,6 +73,9 @@ static int kvm_sbi_ext_pmu_handler(struct kvm_vcpu *vcpu,= struct kvm_run *run, case SBI_EXT_PMU_SNAPSHOT_SET_SHMEM: ret =3D kvm_riscv_vcpu_pmu_snapshot_set_shmem(vcpu, cp->a0, cp->a1, cp->= a2, retdata); break; + case SBI_EXT_PMU_EVENT_GET_INFO: + ret =3D kvm_riscv_vcpu_pmu_event_info(vcpu, cp->a0, cp->a1, cp->a2, cp->= a3, retdata); + break; default: retdata->err_val =3D SBI_ERR_NOT_SUPPORTED; } --=20 2.43.0 From nobody Fri Oct 3 00:00:52 2025 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E553E3090C1 for ; Tue, 9 Sep 2025 07:03:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401414; cv=none; b=Sh2Tz/ycazq1uHAa9juSTOewttxrmXwLXa7KDt7WuPE6ZXz+GcFd5Z7WHW3lqgWcDTSWYo0z6gndZ9jBv18BHlI3tOoMmQn0zn6e+dIJIKqW4vt7YaU0BcyRnkXBbMa8FdfPaC2yDD1Opxs43+OTq0vL3pop894AukNlBG2RqWQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757401414; c=relaxed/simple; bh=XThoAUpZFHs1s+pwrFwO14HP8Izu5U/x/smPnCa25bQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Jh07FWfoS+sdezGKI5zR9LpBTo5JM7ZkhbNwqvGOnU82r3fK6c78QY0TQOlyfoUCj2L6VI+uY2bilgwLg3SYaJ8J3BKUHnNq6kmTFYP8aMacWpAh5ZdMa53uaOTGSNjT64e2y+hLbqIroTEjgHvRir5uGWIYNlQQEFpNnqWSlbM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=Dyz5vgAO; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="Dyz5vgAO" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-77256e75eacso4732377b3a.0 for ; Tue, 09 Sep 2025 00:03:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1757401412; x=1758006212; darn=vger.kernel.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=WRvT6lW8SE24T6disqBtYa/lDa3Uh1O4/DOC6STqtSc=; b=Dyz5vgAO+mueIY/tuA5IItacvLH9s8N0uaDTRCFKpTztqGluuA0S4EygRaEki+oq4q Dr9lC/ghGGfruoJoy9VGH+q6scJ2mWNsrwVMvccgU+YrGGNrFWmVruDLjvDXQceRlFzr L31S3D5UZhfKvIRF/NbxVRgBZq79Hnaj8TT2MOssQN9RhFFrAYODkR+1S2q7PQ2iVVLO AyQiUeip/hFonOAByA9/vmfN7uO8zvJZ+OGcd6ELR6gB845KEcqLjBq9O6HEiY1rTX3S 7b1jGt0Kphg8qDdwAQfrlbBD82fhMx3tahc5oN8Xqt5vTSZls3DQXqpcCBxVlMRhcStf YG8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757401412; x=1758006212; 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=WRvT6lW8SE24T6disqBtYa/lDa3Uh1O4/DOC6STqtSc=; b=GYT5iuLtNZEQd+K7IpI4nJTVLMgEdsZVbwJoXf1l4/zQFn9RcqtVBEIpAr7zXbyNM7 jpnOh4+TXOzPmbFN5qOJid24GZR7Mq0PCkQ2eNsN2WyDiKp8o+WAnkdBrIPdeA3mIgEC i/OE+kB4u9OGmTK+SdbEfVD8s8ArFeS4Tyc6nlt9i/pJch2MB58dS+fHJ3pxUJIvoiKx ufMUe9gqA//TkcoZ3/5fmyQqI1rP5TfMj2WWqVRUZ8+2xB0JfOY8k82HSKAL9B68Suro F0SHYR7/oZbFOrtL2TkvO8BPMB7Qth/Xz0TsGdtr2rj7W0rC0hLJz0BrSfNQmCzPY+up ibCg== X-Forwarded-Encrypted: i=1; AJvYcCVEt8e3cr/nYijuOwRvH8yjYZA9GeZ+xfjStwhcUN1VzSRdQBHdcaLUhWQUkOk1JmFSrs4xXMquz5xiAGE=@vger.kernel.org X-Gm-Message-State: AOJu0Yy0+MXE+N9MORTC+o9lVAsqbXc1/MzelF+p9oqAvhTTNsY4M9+0 DTsJNBESe+n76ARcF+gjOv9yubNZQmqyq8d5X64koKbVhiojcPJ0+PU5hPOVkgTK+WDQelykc56 ktR8L X-Gm-Gg: ASbGnctrIBxmknYHqxna/LNuDsJurlnfAGGorfh1Qj9bCFDPfogPsUxm+6u9CkbwjvO RFvcPSdQiLAikHCGG7uksMcKX/CyWUOAcvyREf4vTsV53/AJY30Uv6QKzEH1XaMl/iF1Yz4ZZmD cAN+VK9wkYkg8FxxExqN8VtumihSzemrFYBtFhalDaP2OHBbzedgFhr7Hcdy4qOyZc4iE1OogRi q0ZsBQYtFhTo4dy8gDZcCuNmoHNx0QOXCzWmgsyreyvd4gRYAADXYd71+Cl/dTR0Pd+7wkWT+4O Hy90R78K0jY+QaV7Wuj3Dx8HGcH7l0AtLw8McLqeo3C/3u4tYTVRwGP5M+1Fvw8N8wrY/KytDGK nRYjJlGBV3Y0X5Kyaze+LWN+TrsaT+TO205Zmv4uXW7DCO4TB2ULCCi1n X-Google-Smtp-Source: AGHT+IFeScYoURP1S0tDI9KKWt2+546E0P9kyjl9XLHBCBfgEh4mWYviwRJae66lvgYjFmHDEYj1kQ== X-Received: by 2002:a05:6a00:140f:b0:740:a023:5d60 with SMTP id d2e1a72fcca58-7742de60630mr11833770b3a.19.1757401412287; Tue, 09 Sep 2025 00:03:32 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-774662c7158sm1025535b3a.72.2025.09.09.00.03.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 00:03:31 -0700 (PDT) From: Atish Patra Date: Tue, 09 Sep 2025 00:03:27 -0700 Subject: [PATCH v6 8/8] RISC-V: KVM: Upgrade the supported SBI version to 3.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250909-pmu_event_info-v6-8-d8f80cacb884@rivosinc.com> References: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> In-Reply-To: <20250909-pmu_event_info-v6-0-d8f80cacb884@rivosinc.com> To: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale Cc: linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-50721 Upgrade the SBI version to v3.0 so that corresponding features can be enabled in the guest. Reviewed-by: Anup Patel Signed-off-by: Atish Patra Acked-by: Paul Walmsley --- arch/riscv/include/asm/kvm_vcpu_sbi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/riscv/include/asm/kvm_vcpu_sbi.h b/arch/riscv/include/asm= /kvm_vcpu_sbi.h index d678fd7e5973..f9c350ab84d9 100644 --- a/arch/riscv/include/asm/kvm_vcpu_sbi.h +++ b/arch/riscv/include/asm/kvm_vcpu_sbi.h @@ -11,7 +11,7 @@ =20 #define KVM_SBI_IMPID 3 =20 -#define KVM_SBI_VERSION_MAJOR 2 +#define KVM_SBI_VERSION_MAJOR 3 #define KVM_SBI_VERSION_MINOR 0 =20 enum kvm_riscv_sbi_ext_status { --=20 2.43.0