From nobody Mon Feb 9 15:17:05 2026 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 43B221D5AB6 for ; Wed, 15 Jan 2025 18:30:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965858; cv=none; b=EMtKvxRFCEIZXdPRfqClCbdvQJCbR6tTpdLD+ZfWFDNPwExiDLib/DMN1mpLNjij51LyHxRrfBNOSvm+aUV5LXprvHXjRhQq2bHhq14G3FW+OVZOM/3U5+bI/P81BqI9erkq2YNXcXYzftOVm6iDum54zFNgbwB8nxaGnlNp0O4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965858; c=relaxed/simple; bh=IRi8vvVbX7RcsNkx4/mfVGVQ/4HYTvSqhjj1SdFdZyI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mOVRAt/ROBFV5HCaWSzu28OZ91odtVE5A2taL+h+3I7Nhsg5Sw/hOHAM6kB1hL7bHoc1XCsz4RTe7vLHEy49qeMSAxvT2XhfTE18KxiuSId0cg3keJ/kpJJ2vCO6MlTTUINung2Xm9s1FknGGkK9JukBSb/2FG++JflklYwo8Dk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=XYRyoTc2; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (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.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="XYRyoTc2" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-216395e151bso1993645ad.0 for ; Wed, 15 Jan 2025 10:30:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736965856; x=1737570656; 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=R6MbfDRCc6A6mGBsw+fhL6wjTkBIFejSaI+SDSiajdA=; b=XYRyoTc2U8kV4DIQcSsbHRuVZPEJ7XTXlz4mBbp3Fe1SPyY6O0kGMB5VeLH9eKXtUT 9i5XEXFAsXkRUiEMP3p16BXz6nNmtaD/nxy4G7+5B/fmd1zR2jDj7Ni0L1k7yoOCkWwI 9hPpPwDYTLKVGxnTAM+PymX/NcU5SsPAAxWh1yCLPL8EDJUFutiWWpD4Z/4yiCDtcN63 HlDlpn3sES4CNQIEfc0KnYFPiNDGh2SY4c/EOBW1Ar3jrMDa1s0F8MSQ/rqjBsZYfpYS fV/kv1zYSL0nkEc6NlhI/WfHHTYtF+QYosqDvaL4ELWCcXq6JOr/HABfrB23SpJpryHf sFvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736965856; x=1737570656; 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=R6MbfDRCc6A6mGBsw+fhL6wjTkBIFejSaI+SDSiajdA=; b=qDCeoXoS7NQFZGEWBzE72sO1+ya4K/QpyS3tZPf6vgSlEh0rwxPdhmN9vWKbN9eNs9 Mx91hgFB/bdIRC7/IzXsqf8vhoVO+ePcIE86+rqhQd+lPorVYTTZ8/jJ4up7YldVHfZg soZkIez9lOab+zkEwm+wsyX2x856qutRu7UENsxT3tBUIVl4SYrbUuFUlW+1XybfcyjS qWfPWZY8YyNxJPmrK6PliVbb3ZTaHAta4/WqBxelG8aAjWqGOC/J717FLTBansVD0vys +F5V2Z3H340q25imgs0fo0AwoBQXwwN9fYpTEg/F+vL/zl6pXSzOEAvbcrzOPilV9oPa dMAA== X-Forwarded-Encrypted: i=1; AJvYcCXZtwvBDgLbKYima9vvw2EVkJgXbqWcOOiK3yVc4ANBCDC2sRMHqckDdcz+1czezTndCxqbjEob67nAPPA=@vger.kernel.org X-Gm-Message-State: AOJu0YzTbwCmG8191ywP7pmAN/1nasNRi8ApDOZnmWRL1pwhwQbUT7cl KC1J8TlC+oOV3BfouqZXaEdydp+L53SAoDQ0sU7xc2dFH4gtsTiDZZEPhIAg8ko= X-Gm-Gg: ASbGncsQrjEKX5LVXa1oZ8J+0Ve5DHNp+U+Xs5Q44i/owLnrAjKCYn3vUEOsXsyOHBS LkSQLddNghuhKkWjAd21VWmjLSoiuc5l/8N47CS0gJjIE5uDifEAPtUwqjHycr4Oxw+iKZsnlub uOC2XflWSnTMQlrAOihf9Ut3tYqrpLP5PjCnUecP64sPObMLn2lt5J868MCv9hgaol0aq2HgMK9 cmtzH4jfc5KXi5G5x2rbRscWXWabxgXDbUoN3Lpl+Xh5fClmCNLQoar3Vv2GM4wNKGAQg== X-Google-Smtp-Source: AGHT+IGH5/giAEf8Q/ecUlIbOiNlBZurjf3IoH6KsqiI1EGl06ksaFaVD7yVqQ1dvhjlbV18FEvXig== X-Received: by 2002:a17:902:c40b:b0:215:ba2b:cd55 with SMTP id d9443c01a7336-21bf0b76a12mr58588755ad.2.1736965856596; Wed, 15 Jan 2025 10:30:56 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f219f0dsm85333195ad.139.2025.01.15.10.30.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 10:30:56 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 10:30:41 -0800 Subject: [PATCH v2 1/9] 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: <20250115-pmu_event_info-v2-1-84815b70383b@rivosinc.com> References: <20250115-pmu_event_info-v2-0-84815b70383b@rivosinc.com> In-Reply-To: <20250115-pmu_event_info-v2-0-84815b70383b@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, Palmer Dabbelt , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-13183 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. Signed-off-by: Atish Patra --- 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 194c153e5d71..170aa93106b9 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.34.1 From nobody Mon Feb 9 15:17:05 2026 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 849EF1D63CE for ; Wed, 15 Jan 2025 18:30:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965860; cv=none; b=LDbw4redOrR984DRJY8BoDg1G+/0Gq/pEw4R32EenasB5asHHBpNpauE8NcFm0Ls/c259jyBCwWxxPZC9mGg4SdSAYpc45RlXwiAQPmQlQD6DVi89gUoWpQSoVIA7p8/okxwWOiNDdCGaSJ88rYC36B7PE/DlCmxQJAuCSjI5bM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965860; c=relaxed/simple; bh=C2yg3QgtuxibTBRy1VBsgb98ZP1o7dJeXGlHHQuTfM8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=I5YcUGzBetbYDFr5h1QFUAkhyAE1w4EEyO436HdVn1dk73S/2QnexiUZf1g5mc3ropkMj/7u3VJvFFiCjxCQCuqKIwpBjLLwmDZMNre6sWXVTCx1CcdUJNzc7sKtE/W4V1pRnykhrNDbD3u0eSmJ98hXEm4VtfkVJkJOVbyRYrk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=LHs7oues; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (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.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="LHs7oues" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-216395e151bso1993835ad.0 for ; Wed, 15 Jan 2025 10:30:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736965858; x=1737570658; 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=nTd9Qo5vidtOLE+cxHwuaQqNzwk6goJIP9mJXkel4TI=; b=LHs7ouesPdcBD/sHmOaAIgtbX2sEhwhBDScp3XPSeRssl6YoRva4njcBwMEoFySyPZ lth5Ocg8Fihq6ncLEatWf+Bhf7foPy3tdSqiG1NbjB1h9+F9HGLMpNvfPgWrxqr1FQ5a ldmCOCi6yjymuzY//9GQT527aZvCE3/yIJL6PYE53FYNz0RUqXoUwA7SJG55ghpopSUk mgOPU5y9iPRm+rxQlVhVvPk0qnV8vTKzF4Jw8ENyyBIoje0m4af6SNRF8hGwLsNX2eLk UPyeCPub0grs8IfPTYm7H5PWKeR2JN0W+ityrjy2GZR8DFUDF394vwDDawzBjXCt8c6A q8KA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736965858; x=1737570658; 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=nTd9Qo5vidtOLE+cxHwuaQqNzwk6goJIP9mJXkel4TI=; b=utKBdN+ZTVKua+P0b0WuM4rr8cIXqtefkR9Y6Ai5//zl3XT4SuQCnj1KasUUYox7J1 IQEKfs1gSzR+z36NiJBYrsHt6Bt8OXz5X+PVCJ9cFJJ4NQ8+Fg/mOBi7M5kZd3kNarUn gG8NCF3C8rwtml6DN6iSvIkp+n0S9sRqRc9PMM6/k7n8dyckQKthocdMBW3J3ekSb88f 7bGGL68yrS7OCDB4S7/iMDU36bw7jyl2ZdALS1OdBHsEfO7blKx3Ki6Oi4Mq9C+dlktY quMttMn7gJInxilFl4yg0OJLeMUkEAloVYG3nsI5rduPspIrq6f/nE/Gn20iVm/VE85t OzPw== X-Forwarded-Encrypted: i=1; AJvYcCXp/g4gUhosvExmRB5sZ65tDdRLTC/l+8yG+cbgPrS4ioORgnzlmVfXjIvQpHCTMSbiMLUEdvWxp4yh9to=@vger.kernel.org X-Gm-Message-State: AOJu0YwiVQCol3/x0WkgFDvbSDEvOf/qcHpLZMGGzPnkkJbbd1CWjkv3 ZEP+lr8Yz/0oAz79BkTRpsbeTgNlRcK1kF4Egl0WidVNEji8DAxAkVWG/dZ3fHo= X-Gm-Gg: ASbGncvoMJ7BB6JC0XWx9FsYAKEMiK9izJ+7Jh1oNXqV1RyjFT99lt/XrPhuQ2oMonu EZEXLCJJXpOIbyGh+6R4ZSWsJLWPUGCNYZh+isunE572ooLg2YOQRjCt6EBG7lsZirAE9aOwR9Y ZmZ+RHq+7q0ZGGE+PfI+oEsqX+ZS5ycJJjPPlsj+wFo7sPAP48vyQGp1SX+aTIEDR1vfnlIuPEm uOFHsGFBwFWj+dFfr7UoVt5y2G4LH4d1arZE3/VS3QMK1I7kOaYOyArZRx8WYV8nTgHmQ== X-Google-Smtp-Source: AGHT+IHHO3B1HJhEuywvwBIX7b7bfSC/4ve6r1ZbOzw3ZYVhbL87vWT2YRpjRvKHUMwV10zBAIgK0g== X-Received: by 2002:a17:903:2291:b0:215:58be:334e with SMTP id d9443c01a7336-21bf0bb89cemr59154695ad.10.1736965857674; Wed, 15 Jan 2025 10:30:57 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f219f0dsm85333195ad.139.2025.01.15.10.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 10:30:57 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 10:30:42 -0800 Subject: [PATCH v2 2/9] 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: <20250115-pmu_event_info-v2-2-84815b70383b@rivosinc.com> References: <20250115-pmu_event_info-v2-0-84815b70383b@rivosinc.com> In-Reply-To: <20250115-pmu_event_info-v2-0-84815b70383b@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, Palmer Dabbelt , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-13183 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. Signed-off-by: Atish Patra --- arch/riscv/include/asm/sbi.h | 4 ++++ drivers/perf/riscv_pmu_sbi.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h index 3d250824178b..6ce385a3a7bb 100644 --- a/arch/riscv/include/asm/sbi.h +++ b/arch/riscv/include/asm/sbi.h @@ -160,7 +160,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 */ @@ -218,6 +221,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 170aa93106b9..5d5b399b3e77 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 v3.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,14 @@ static int pmu_sbi_event_map(struct perf_event *event,= u64 *econfig) =20 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)) { + *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 */ - if (!(config & ~RISCV_PMU_RAW_EVENT_MASK)) { + } 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.34.1 From nobody Mon Feb 9 15:17:05 2026 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 083AB1D79B6 for ; Wed, 15 Jan 2025 18:31:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965862; cv=none; b=Y+zVbbxYOmV9laZipyG4/WhSSI2m9vcx+PuCRfN3RJGN6Hr6VFBmTWqgk3dZ/IJqytVJmx+RVXe2tibB1zNE+no7Bpc8VfzZh9S/zPRA3KRByI2gsPoIGOh1dbewITLMn/19iOA63xWL9dO5liNCtJmyelZuDkbDwHecmP/GXZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965862; c=relaxed/simple; bh=rkpDrsA/PVcggHd7+EAEFge1PhxYTYtvQjpCCjdH2MQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=f8WPEr5MLd1WYx04wjynrfOKVadtbvYSYsngAaZO52C/3U7ZSioFub5Ow+qTOE3O2NvqPmaUum+MGgHh5KPCkoCjlTzF2MKAvtfOalh/qu/z8h2cmjRuX3LmIzi5x2cYNr5dQq56/baGz19RpXN9xq/F83IYFFm6PHlDc6p8wog= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=SafW0OEp; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (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.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="SafW0OEp" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-216281bc30fso152246725ad.0 for ; Wed, 15 Jan 2025 10:31:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736965860; x=1737570660; 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=hCeV16Tw9Ue2BbFuxP2Jm0elvtAXwe5u9EmpHjH7wzE=; b=SafW0OEplxokJRfKhuKd8E1XPRTF0Vmf+rwKUxy7Bql4BO/Bm6g1JH9f8IM8UnOh0k fP/obteDSt2zfXPDzdxr9iQGSeOtIa1extE3vgjzWjMFZvzHutWSmU+sV7rZTsMqHpLM DxzSp4k9rcX//dgChIPPB+lqUsK0dJG5QhhtuHi1gIL8FFZ9/z5wzUoxjBYYar/qm3um VaJgf/T3iHUScBAlH+xyPiVOc0iqsI6DmlJieU+Xbk6l3RlVn/5Zg6jEByIo54MZu28S XvkqQezAF+QQieHQ5Dh8NFESYwqFdDPL3+6E0Jckyyd1l1bRT75yGmbHJYQY33q7me9+ X/qQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736965860; x=1737570660; 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=hCeV16Tw9Ue2BbFuxP2Jm0elvtAXwe5u9EmpHjH7wzE=; b=SeSjE5GEN0W6nrOG/Dh7ukCoD0OaX7jo4gnhSlAchG8p2lLdf4l2DHV8q3M8FerCUD LmGgM3KLi4G2jtya3OL0YOcY7/x+cLR6va4gwTG+1535nl8YP5R2LhpES8oz9x7rCqpo vbpuY6oqhws6x+iIvQ9eRkis0gntTrsvgIf+mB2LOpXhEQXQVIcx/qK8AfUvgbzfCBOR KzTU4Qhshsv+68W1w/Hd5s9RdSZ3n2qk6qABNPrCo5n8RATuAz+7MgRbBmWwM/OuaKL2 k95yw08XbE97IrKYNyHUdbqscaUnoeqfcbhdbb8e3rgkd+TRJNxMlRmEv56NgKP2hdj2 NzXA== X-Forwarded-Encrypted: i=1; AJvYcCWjOaokg5zl6eE0FVym7yck/8hSOIlaqIo5siO8LWb8rnH6aZo19l4MpIZeCttFNnyGX165cKz9i356IAU=@vger.kernel.org X-Gm-Message-State: AOJu0YzXTsie+5RNspe91g4zd31pl9wMnW3JX0G2R+0JI+WX8g2cDIod h/QM/3oWP9L1RnlqHcqOogK5FddbrZmDbRoqr0euGT/5T+0War4ArAJZiD33078= X-Gm-Gg: ASbGnctY0yk/dV2bRpfYgNUWaz2U4zFgewiyPIDd71dSBtjQGMAiSZ1/wcMAEDoVOqR EcE8oPY9qSkgOM+yYR5VkWYrlbWSx2A2NlkAgxlguT+tKsR4DiNZV6YHjkhpnJkbeO2tKhZzUBq uTVlp55j5qzGc3Io9zORGJGbVddgYjqgLuJ3mO6HWc5Nlva2k+Xen5Y/EIuq5f5OczIUbPkzi6N 0xZU31UNXgYT5huaUnKFsBYTn8i4COhsbIDzCKszF3c+V+cZZlVY1EYhMeq9puVCL5U6A== X-Google-Smtp-Source: AGHT+IFhv3d+iNN38adFn+dH29zIS7C6pmY5MPy1fONgMvFeK1H10VHPHqcDN6p90NhFpRdpeycXlA== X-Received: by 2002:a17:902:f68b:b0:216:32c4:f807 with SMTP id d9443c01a7336-21a83fdea82mr472230285ad.45.1736965858786; Wed, 15 Jan 2025 10:30:58 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f219f0dsm85333195ad.139.2025.01.15.10.30.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 10:30:58 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 10:30:43 -0800 Subject: [PATCH v2 3/9] 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: <20250115-pmu_event_info-v2-3-84815b70383b@rivosinc.com> References: <20250115-pmu_event_info-v2-0-84815b70383b@rivosinc.com> In-Reply-To: <20250115-pmu_event_info-v2-0-84815b70383b@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, Palmer Dabbelt , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-13183 SBI v3.0 introuced a new raw event type v2 for wider mhpmeventX programming. Add the support in kvm for that. Signed-off-by: Atish Patra --- 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 2707a51b082c..efd66835c2b8 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.34.1 From nobody Mon Feb 9 15:17:05 2026 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.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 979871D86C7 for ; Wed, 15 Jan 2025 18:31:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965863; cv=none; b=s6g8KAU1p6obVOdFxwoNepkQpU6znXd8Dh22Yan/TBy+ZYEhskc2I3sxv6L/rY8pONbFXmITlyhE0cJVbKsPMmBxScBmY2GNqudS45LEk8Ha8cuKylJjRb56OUSWHdekMoGSOMFEa4rZ6bbhipLgJDuYnMLK24aiNTjoV+/u0os= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965863; c=relaxed/simple; bh=OfDSy2joQdVcFT7jBgw7uGk7SzYpOcCrRH83Sx1YrrY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oUrPkkioo7BhZOrIX7ZRasCzmJk8De3yePkL7/LUDUvTBgCpIOcwVB0rgNSQXWFeW8ID0cN46xwcyAOWl4vFxEr+o+ijrXgfzAzFTlq889l81v7C8O5oPUx7s0OSoWRSWNgy/wVTp7UA/k+EADgBUJObKokRkarnmRI6HNQKS6c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=QIzv/UB6; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (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.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="QIzv/UB6" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2167141dfa1so1962495ad.1 for ; Wed, 15 Jan 2025 10:31:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736965860; x=1737570660; 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=JC3EeyOvWf7FtpVzWoJ1Ny8l+dOUVPRncQAFsx1SwlE=; b=QIzv/UB6l213YYMuhc9jNO5TWyOxr13SOu3SQN0cCWV8cx7dAyUbWpEV4V4tfDadF4 sJlC3fbc9DE6M+q/bZBd+337fmI0Ceb+uK4OZdymD0sMPA34rzkjYGIhWe4FvgElAVT6 Br/sv8nuJqosPsK4oXk2eDQmtoxvwjggcE3ZaW+i8PfYApj21z9DqU8pl5nCRyLoWrry jJ7hmhYIeHIc8ThiG6CrTBIffdNtoRN38JqOQz8E+jRsPp9dS+TtXueY1WyOuVQ70jx0 nlxo5dmf+gE1CbhS3Zwm7Wl1hXtC6JG5uv8v1MfFNOhft2cB+fLSMyhfnqFq4eItsQ5A 99+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736965860; x=1737570660; 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=JC3EeyOvWf7FtpVzWoJ1Ny8l+dOUVPRncQAFsx1SwlE=; b=Nii3VZ015FfTT3zrEBc36WpYAhCriRqH0Bf/8ohb2WMLyiGT536RKI7F1JaAy05Hmv fTLgupM41Ko/vkdMIJsH4dnNM3NcpXnPgRy81xoYmJz5JGZwz3YlBNx/JcFM46hgeS+H rVuIlOTx7w+RIT0a3ezdI6TPmUVnbs3oVOOA4Rj7mpoeR0UjcpMD7sQ2flGxCzqW3A6I Hmr4JWBJJDKfox2wo5xgaGp5DZxHiDwCuUwekd1OCp7sPxHBSqiMyUgM1wY+xiriLKwj XR7ROT95UIsjQk96324gTbU+h2+6syMtnhACWMVtRuyUo8sewTe4LQaOHAvPmql7nPnS yhEQ== X-Forwarded-Encrypted: i=1; AJvYcCXho8CLpwmV3kZzAF5Z7mH2BXK465dnzhCtHB0SLUAFXJ5l8vNhp56ygb+VFnEnVqQ7xFgPkBhWNseqsxQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyEtkxrstCOXOYtbolkALfxOca5aXkFYFriklNBE4T5kbdvP6EP R1WdnCR8NRvh+Kc1UX1LOV1GE9FLwQn0uMdf+uYkq383KqhMQkZeENxj0xdii00= X-Gm-Gg: ASbGnctvw1iF5p0SjSK5eSpNI6Xu0EjaWbfnfeYmhij5oo6nwPMb645MI1jioym3/Qj 8lehqTUKM4sdWVdsj4h8BW5dUHGZA6LWEXWgg4kiuRJ2WgWkMIUjUrIEdOENtYoyRcJSUw55LdJ P/xQbW6LyP2xrXQQJTP+lmzIxjbKXTf3639/horxOB8p/Rt26YzlmrHBzG3fsk7JuZMrV+6Cfyz CWwBkW/+dS9ykiptHFJEsiZ7UMZQ2aYCT7kk7u0MDa433xkPynLBNQERz+XgMsm6OM3CQ== X-Google-Smtp-Source: AGHT+IH3olozIYSo4r3r15dhiFKl3/3XHwJwjdJ6AtULTMFFycwztXRXf6ddeRVzYwbOviD3YM/ZOQ== X-Received: by 2002:a17:903:1107:b0:216:5db1:5dc1 with SMTP id d9443c01a7336-21bf0b76a05mr61009835ad.1.1736965859902; Wed, 15 Jan 2025 10:30:59 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f219f0dsm85333195ad.139.2025.01.15.10.30.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 10:30:59 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 10:30:44 -0800 Subject: [PATCH v2 4/9] 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: <20250115-pmu_event_info-v2-4-84815b70383b@rivosinc.com> References: <20250115-pmu_event_info-v2-0-84815b70383b@rivosinc.com> In-Reply-To: <20250115-pmu_event_info-v2-0-84815b70383b@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, Palmer Dabbelt , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-13183 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 --- arch/riscv/include/asm/sbi.h | 9 ++++++ drivers/perf/riscv_pmu_sbi.c | 68 ++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 77 insertions(+) diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h index 6ce385a3a7bb..77b6997eb6c5 100644 --- a/arch/riscv/include/asm/sbi.h +++ b/arch/riscv/include/asm/sbi.h @@ -135,6 +135,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 { @@ -158,6 +159,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 5d5b399b3e77..7db78c7a1524 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 (int j =3D 0; j < ARRAY_SIZE(pmu_cache_event_map[i]); j++) { + for (int 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,14 @@ 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) + 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.34.1 From nobody Mon Feb 9 15:17:05 2026 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 028411D86F2 for ; Wed, 15 Jan 2025 18:31:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965863; cv=none; b=UZ+NL/NQN/59pjHFddbqWaszP/oTpjfcXF73HncCTNKAI3ZceE9VXmYifY7rMhKNBr9qsdH9er35KGjAFVR0fJbTcRqUCq3Gabtqj/xZE/nOELRnrtzcD4P2l5nUX647+riV9uSf6bhJJwjk+eYnMTIS1AKOf/hCgxafNwR/tDw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965863; c=relaxed/simple; bh=Uf4BWe2Su1lIPZDq6pdPd4bMwgYHVB6D6W9CaX0xEmk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Umby+u4c7UkyP5B3agMr8toaUDc0509lc9kRt95PxVRpqRj71e+ZGdIfBgsx3/nwqwPTwW5hfB5d5SnxExPVS51LCBf0orBjbiugxF6sobJpzqmw/kfuleJYOhIgpHUPTlN6trcETF6YudEQ+SfDlcj/SqF89lZQe+CFyf+Zy4o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=yNOfiTrR; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (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.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="yNOfiTrR" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-215770613dbso87226865ad.2 for ; Wed, 15 Jan 2025 10:31:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736965861; x=1737570661; 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=tgS461j5peg/wBSc44BcdgWOlZZ4NL2WfdCTDE0Whhk=; b=yNOfiTrRvwmwGMEZLTTZC6DbsW0lNA0L6cAfU2g81MFjTKau1TteK5wcXBJsTVfiCS ch35NA26nXXzDZt1oMoGh4ivSLlb6/mFNgLPzluHWA6kXRfiWdRtyQpksBbplECzcERW pTpBXx/KrIb5SSDER//wytUXtFridb7f4XHEM0hLUYp+kskQjUj25/hfSr2E5WvmkF/H T8V8Y5hgta9YfE3xBUlQuCj62KUZCtHl0exj+JpL6QnOzflxCnt4uGNsC55s1JAa6jOH pcYIofoWukGDB9sLCcMZMfzKq3HUv8F55GoSJLFmP6KejN8ABXEPpoMyIANBFqhYe1ne AIhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736965861; x=1737570661; 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=tgS461j5peg/wBSc44BcdgWOlZZ4NL2WfdCTDE0Whhk=; b=m5pEqbLeaTatbtSDW4azrs5cOkcI5py0Ldp8g3QlXj+xup6iUG2n6cjvg910FQClZF rQK0DpsXanluZtn8EbgmELvg06KywgKO7R/pn0NzEQ4k2f0tGDq9igz6IIlfw4gAsCvR yHWFFR41uGu9xgICHx1HSxLnd7S9ibzAuHJS/MAWgcaof0oRpG8AfCoG+1UGnx4nzEp7 ghgHruH8fO363FIsDL9xzBtt+uaKOse8p7PCFNGk0M0gaXQVkVxtDbOMO8iXG1Jykj/S UrBH2buGSpqNPEm1ODgMqKX0jGNlpryNjxODrob60Lb6A13P+YgcYogQfvrPPi5ljPGe 4VZw== X-Forwarded-Encrypted: i=1; AJvYcCUQNdvhBaVmfasVF/7e8cqIEJHiHegnQQHDJ4r6FBrGGN1hHRe3J/0YJuKEI3S4gVMFvc5gjE2cSd63UNs=@vger.kernel.org X-Gm-Message-State: AOJu0YweHvfcGMckducMt5MylpFQinCvUKOXMyq3t7v+u/mXlNXgsBbK J9cbbwac5sP3Rd1POmTa0LcFmTL7ro2lkgLlNN5WUnx79M+RYTFTOj2yu/pjkJY= X-Gm-Gg: ASbGncuAnMS4qX89VeJWtrSSm8NVF0BY2CbadxD3ri4pBKf+WIZ2k2OUN9Dr9C5Zfza jNMMKPYqh12oZa3hTV8jR1Yy1YCpAtCQJV36dbaEWTMd/6Nt4gxKemzhdbVkelNaEeVwA3uMk34 rnOp+5OSWih7uEA5HfJqMO1t2rGoGXyzTGHjb37BkuSLRZzjtJ+yGBG1CjSPhR7nZz8huGtu7Rj Cu4jczs6sGh3o25nw5Uyq2fbTC9YrZDIX0GKzyNUtxzgNmfOv1oo7M5fPeGo9pEl7MH7Q== X-Google-Smtp-Source: AGHT+IG8TkzyWt94SBOJrOOqLMztl8kBVgG7Yj3MJPUrXXsfaCQL4prK7YB1Ze37aKg7tg/myTnREg== X-Received: by 2002:a17:903:2348:b0:215:5a53:edee with SMTP id d9443c01a7336-21a83f36f56mr441100595ad.9.1736965861248; Wed, 15 Jan 2025 10:31:01 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f219f0dsm85333195ad.139.2025.01.15.10.31.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 10:31:00 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 10:30:45 -0800 Subject: [PATCH v2 5/9] 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: <20250115-pmu_event_info-v2-5-84815b70383b@rivosinc.com> References: <20250115-pmu_event_info-v2-0-84815b70383b@rivosinc.com> In-Reply-To: <20250115-pmu_event_info-v2-0-84815b70383b@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, Palmer Dabbelt , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-13183 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 --- drivers/perf/riscv_pmu_sbi.c | 124 ++++++++++++++++++++++---------------= ---- include/linux/perf/riscv_pmu.h | 2 + 2 files changed, 69 insertions(+), 57 deletions(-) diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c index 7db78c7a1524..f311daf63ece 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 { @@ -411,6 +412,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 v3.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(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 @@ -576,7 +642,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 @@ -584,62 +649,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 v3.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)) { - *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)) { - *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..4a5e3209c473 100644 --- a/include/linux/perf/riscv_pmu.h +++ b/include/linux/perf/riscv_pmu.h @@ -91,6 +91,8 @@ struct riscv_pmu *riscv_pmu_alloc(void); int riscv_pmu_get_hpm_info(u32 *hw_ctr_width, u32 *num_hw_ctr); #endif =20 +int riscv_pmu_get_event_info(u32 type, u64 config, u64 *econfig); + #endif /* CONFIG_RISCV_PMU */ =20 #endif /* _RISCV_PMU_H */ --=20 2.34.1 From nobody Mon Feb 9 15:17:05 2026 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.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 752431D90B3 for ; Wed, 15 Jan 2025 18:31:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965866; cv=none; b=VqX3r2m59xDHemdYIY9hBW2Lf31S47m+oR9jbvDwbWZlbRbeWa78KadpJJatj+/ygtecWh8knx+ZavkMouxsjMZ/NrjkIaVkoq+VOSxuYQvxDbbanrepiNskm6Exzsw3rzT8yg0drW+JRIDswkcz17/We+txP2qLQxIyt75McXc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965866; c=relaxed/simple; bh=2VZE7ahRiWFyeef1RfOaScKQMn6RmpORm+fo0poup2k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LxMCYDlDwvlsAppIoFgYVxM2aPiTs44n0fILYKyKfU+ftIGp35lpsx9i2vy5qtPMgijBvZ6GiwGKYiDG1v8WWYW+ETKP6NRwo+m95RB05f+dZv1ddLR/oMNOEZ+mV5sA9inl/MP0MGvtC2/QhJhU3SUJhln8AQ16dQi1Y7FKbpw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=nkWp8jfH; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (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.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="nkWp8jfH" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-21661be2c2dso127640015ad.1 for ; Wed, 15 Jan 2025 10:31:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736965864; x=1737570664; 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=eGsO74qlfZsPi9kGTe6Mf3rItgKav5O5SJKk6N7d7+Y=; b=nkWp8jfHWt38tCi3A89AHaGElaPgfNyRMPfRv4RhE9DWQIIIeR1W4OmpSHrz4EbW6y Bqh7GxEOYJ8l7iKj9oVom+0EqYn6XaJ8/+gQfXiEaXuQ4uM7FHu1CP9RTolrfYDjj5AY VSDKg9JSdqeB6stLmPAMMvft+eHpBIObRSzVJC2PLMPYABIOQ06R5Zv9iKD/pt2C3jLW 1zUgcs7HG1j78dLCh/adaE1LF9ZJ1tsXKNCOwL5U9XaECPxxlPyTnpS6Vs3LLCFEECgx wJxEsGZNnILHRGsLPP3nO6X1m6+i8ZVxFj75POG0gDH4cfxNt0tc69Q4bxV2QdqpGZgW 5X0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736965864; x=1737570664; 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=eGsO74qlfZsPi9kGTe6Mf3rItgKav5O5SJKk6N7d7+Y=; b=Nef1phgoltRIqAv35WjzoXchtdilw/QcykT/S/UoQEMzlBlDLUd4j35BvNb3nKYyDy ZSuwS2sCATwt04Uw5FwF94ncbs2+gG1N+RMQuu7WmFfkS74/XhNzRBb7MLq33dKOKtF/ 819PscXZ2rg9KFX3LDyLYcP9JvOxOShw0nYS/6rrvmvgGwvFnLE5F5At9h1cImWhyJmf XdBn+o+cqE58rMLs8GKrlU+EG4JXXeanRdwK8k6u6tkq4wombzZ/7IRsJnWMaPZSU2Yw b481rsIt8LgeHMSLz8RsDFmVs/IcKOIpyvNThMy3vX6zVbqfhDfmXWkBDTPjCviomloQ JtDA== X-Forwarded-Encrypted: i=1; AJvYcCVHgZeNakT9rzBpwrKbjVFFBT4LKt53y3xY98jmDkza+rNOKvcJeovT4TVnOac5Ahi2KxFDHK5Y3GgzWeI=@vger.kernel.org X-Gm-Message-State: AOJu0YznrTjJoQg+eP4jJsgdNNsqTr3YkaZA9sLglFV2L0O5uh1gpf/0 LRa/e9U8pFKz0oPXeHEUqU/yPRcrnHI7kbt1yqXrJue5wRDOiWTCtl+dL5+0+LpkiRnYXxORvUB X X-Gm-Gg: ASbGncs3x1Lods78xqrNeE1LMROlMcrBec6YAMvu7dKodV3GIKbai8w1OT0MiRKjmHH Nnb9HasOOClFxWXhQWnGdMvh/F+8dErolz51RFyi2zwlEBq0uQU/Gtfc4MQtFn9QbUPJ0ldSjc9 JuTpZU8kklBkDekLlGyg1MxX2uEt++HdRyd6sUgdShAEcYn/1FUF6dpA1Mpxh9CPmcp4C5zOfwI wrpYXWn8f8R9DAH0g08P8rz6JB8vls1SVXAWNEg5kCwYKBELjuutzQHX3VTaxaUbsTfvw== X-Google-Smtp-Source: AGHT+IEVuy0zAtOEk7axH9BqkY46Q1CUJK/CsgMJYOIS0qmHtHOLlyWCGQnQHM7bf0KJ01YfA5xjlQ== X-Received: by 2002:a17:902:cccb:b0:216:6769:9eca with SMTP id d9443c01a7336-21a83fd35bdmr452990815ad.37.1736965862343; Wed, 15 Jan 2025 10:31:02 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f219f0dsm85333195ad.139.2025.01.15.10.31.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 10:31:02 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 10:30:46 -0800 Subject: [PATCH v2 6/9] KVM: Add a helper function to validate vcpu gpa range 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: <20250115-pmu_event_info-v2-6-84815b70383b@rivosinc.com> References: <20250115-pmu_event_info-v2-0-84815b70383b@rivosinc.com> In-Reply-To: <20250115-pmu_event_info-v2-0-84815b70383b@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, Palmer Dabbelt , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-13183 The arch specific code may need to validate a gpa range if it is a shared memory between the host and the guest. Currently, there are few places where it is used in RISC-V implementation. Given the nature of the function it may be used for other architectures. Hence, a common helper function is added. Signed-off-by: Atish Patra --- include/linux/kvm_host.h | 2 ++ virt/kvm/kvm_main.c | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 401439bb21e3..d999f80c7148 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -1363,6 +1363,8 @@ static inline int kvm_vcpu_map_readonly(struct kvm_vc= pu *vcpu, gpa_t gpa, =20 unsigned long kvm_vcpu_gfn_to_hva(struct kvm_vcpu *vcpu, gfn_t gfn); unsigned long kvm_vcpu_gfn_to_hva_prot(struct kvm_vcpu *vcpu, gfn_t gfn, b= ool *writable); +int kvm_vcpu_validate_gpa_range(struct kvm_vcpu *vcpu, gpa_t gpa, unsigned= long len, + bool write_access); int kvm_vcpu_read_guest_page(struct kvm_vcpu *vcpu, gfn_t gfn, void *data,= int offset, int len); int kvm_vcpu_read_guest_atomic(struct kvm_vcpu *vcpu, gpa_t gpa, void *dat= a, diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index de2c11dae231..b81522add27e 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -3283,6 +3283,27 @@ int kvm_vcpu_write_guest(struct kvm_vcpu *vcpu, gpa_= t gpa, const void *data, } EXPORT_SYMBOL_GPL(kvm_vcpu_write_guest); =20 +int kvm_vcpu_validate_gpa_range(struct kvm_vcpu *vcpu, gpa_t gpa, unsigned= long len, + bool write_access) +{ + gfn_t gfn =3D gpa >> PAGE_SHIFT; + int seg; + int offset =3D offset_in_page(gpa); + bool writable =3D false; + unsigned long hva; + + while ((seg =3D next_segment(len, offset)) !=3D 0) { + hva =3D kvm_vcpu_gfn_to_hva_prot(vcpu, gfn, &writable); + if (kvm_is_error_hva(hva) || (writable ^ write_access)) + return -EPERM; + offset =3D 0; + len -=3D seg; + ++gfn; + } + return 0; +} +EXPORT_SYMBOL_GPL(kvm_vcpu_validate_gpa_range); + static int __kvm_gfn_to_hva_cache_init(struct kvm_memslots *slots, struct gfn_to_hva_cache *ghc, gpa_t gpa, unsigned long len) --=20 2.34.1 From nobody Mon Feb 9 15:17:05 2026 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 2379F1D8E1D for ; Wed, 15 Jan 2025 18:31:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965865; cv=none; b=ma3q30eY3v6MiNq8pQRGuCeFbMJ6Z8FJ7UnuzM7RszGAUDpKuOHg7rse75++PEQycz58Z2IYpQJ15MXO4iKJkSOwWwDPjf4i1LoBmrdzxfrYs5cEi0+AYisgeX+cP0B6vOGrE5YaobooOlb9vjk+tQjjiJmJ8resbxuEq1x4Ixo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965865; c=relaxed/simple; bh=efs3Hd7cOdrjOpmhmL2LomzcbRptdMckK8U3wRsh0lA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BlP+CHozSD8hm7+N60mqDXaJHGikcT9O8hYNjpk4yMGQxb5Uyy5qZejUHoz7U3VSN3TK6g12Gg7GfZgcfkjI11koyHraTbZ3GQZFzCEnxyvaNnm4aViaXCC7WHwNtjFwUeacNsxtM21eA1AcGs/l5pZv1nzhcNT8aN6d/X62boI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=KEHRw4cn; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (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.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="KEHRw4cn" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-21654fdd5daso122340965ad.1 for ; Wed, 15 Jan 2025 10:31:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736965863; x=1737570663; 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=YPQonIfRWz8q533cgyWsgSdgY3t/tGTd1rJqUG9L59Y=; b=KEHRw4cnfFpUI7D6MXDVGVtsAH3RvTeFmlIhybyHBU53/bA6aDHAJrKgVoMYnPvy6v vekvAag4iuafrV7O+i1+kUUSqqbOcJJVL2d9G+Iq59WTHmpDn3AzLOglYI/+FmyzxVji 2maknp3CcZU2QY27KPSlEOJKDeM+xzJ0LHWSWgXRWZYg9lCkiViE7vMJY4ANqepE51vp wJOZC9pc8uvRlEmcFwnukYHuXoYAxrdk9+FeNAXSKawj2DNo4JpDoXzUP+Wh+hkBEInk OwO2vjVV0MDVYPcaH8QpeJvJkwAsmcMMEkXkdhI3dUZw2tOftdJ8HT+JbwONHWpcBp2K xElg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736965863; x=1737570663; 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=YPQonIfRWz8q533cgyWsgSdgY3t/tGTd1rJqUG9L59Y=; b=P4YaelvBZ4RzL9VW3vw9RhsSBc/ZeaWMsf762CGfY1VpnPpbW2/cor5UtPzh5CXBXV JjdpdCl/nGVH6ZQq8wagot9O+SrH26qvpbYheQZ3i+OWIxZsEQYm7z1QvLQtxwHhK+ih TjeHY7zwLe6xBJ6CtT7GsNJPhWfylGn2ADEqp8rHhrhK5DOjfAxGa3xLU2k7TzJ4Dxdf T93HNJxJYiHYBr3op/ufC4zRK49zyTFvg/kzbNkSoDBVLHl4mpn608i47xCR944uoHVC RwW7duU4LFMT5cAecQW7wpuTj04LM6m7SziuMxMz+Apf1TxdhpIYcuJQtpqqzOEF922B kXyQ== X-Forwarded-Encrypted: i=1; AJvYcCXQ5bkUkT8vuxnbp69LFq+Af4e1oJ/1eKY88h0Gl3KZPVWBLbAEpM3uJpopTryiMFxOdh0jFNqZg3Mzwfk=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5Wh69nlOs4fE/jZ0FYIhmn95ZZ10NoSyj4TKMLeHak4wx48XI JqN7Ui3xhsiaxOpxkwV51E8hYvsyawGhCvefO0nxLVfi1KrwZV1b9I4Oo3verbQ= X-Gm-Gg: ASbGncsIume2rK1scwza3bj8zPFitIDHP4c0wkOvLMRDldp7DNMimCfRXiexSjML+Fj wCYVBxqUYnCMR+eAyIsULUhMBv70U4BFrfv7kF2MWTPE+7AD4MsGgkNk9/Y7v2VGnZSWkZ4Dxoa 3RG04TZk2S62YZiSXTNjd8K/y+cY5yGrh0msXrPO/YVUwZJuLCJ80Jjq2Mee7yyOeP+h7C7ahL6 OulYJ6opERKbpg9XEMdotXzDehXEbQ16qZ87G1//B6ATDFLAd7Za1sEj+eSp+q/0IH/ug== X-Google-Smtp-Source: AGHT+IHrlKrKdeucl7zMxkF/5l3NHVR4wNF51oJC9P55Fo2f9FtCoIn3BV0XWsDAU93AJPqz/FttjQ== X-Received: by 2002:a17:902:ebc4:b0:21b:d105:26b9 with SMTP id d9443c01a7336-21bd10529e9mr125689755ad.16.1736965863474; Wed, 15 Jan 2025 10:31:03 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f219f0dsm85333195ad.139.2025.01.15.10.31.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 10:31:03 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 10:30:47 -0800 Subject: [PATCH v2 7/9] RISC-V: KVM: Use the new gpa range validate helper 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: <20250115-pmu_event_info-v2-7-84815b70383b@rivosinc.com> References: <20250115-pmu_event_info-v2-0-84815b70383b@rivosinc.com> In-Reply-To: <20250115-pmu_event_info-v2-0-84815b70383b@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, Palmer Dabbelt , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-13183 Remove the duplicate code and use the new helper function to validate the shared memory gpa address. Signed-off-by: Atish Patra --- arch/riscv/kvm/vcpu_pmu.c | 5 +---- arch/riscv/kvm/vcpu_sbi_sta.c | 6 ++---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/arch/riscv/kvm/vcpu_pmu.c b/arch/riscv/kvm/vcpu_pmu.c index efd66835c2b8..ca23427edfaa 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,8 +430,7 @@ int kvm_riscv_vcpu_pmu_snapshot_set_shmem(struct kvm_vc= pu *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) { + if (kvm_vcpu_validate_gpa_range(vcpu, saddr, PAGE_SIZE, true)) { sbiret =3D SBI_ERR_INVALID_ADDRESS; goto out; } diff --git a/arch/riscv/kvm/vcpu_sbi_sta.c b/arch/riscv/kvm/vcpu_sbi_sta.c index 5f35427114c1..67dfb613df6a 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,8 +109,8 @@ static int kvm_sbi_sta_steal_time_set_shmem(struct kvm_= 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) + /* The spec requires the shmem to be 64-byte aligned. */ + if (kvm_vcpu_validate_gpa_range(vcpu, shmem, 64, true)) return SBI_ERR_INVALID_ADDRESS; =20 ret =3D kvm_vcpu_write_guest(vcpu, shmem, &zero_sta, sizeof(zero_sta)); --=20 2.34.1 From nobody Mon Feb 9 15:17:05 2026 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.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 3DCB71D9329 for ; Wed, 15 Jan 2025 18:31:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965867; cv=none; b=E0e12xVsDulVNhBbezh3V1hi9h326nTz/UkGz4bnMQMjnNy2Y6R2+pG2INH/jYoSx1BaDUwYquMQYTSQuEnzzbVaSUZDW5r+YlJDZ0fDugyldiWfJgDN3v/UMUiJmnwodKsUoYod/+cWpF5t2Do8PqpO9EXsKUsMoAm8KW6GbK0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965867; c=relaxed/simple; bh=sczug/d3NLCUmVYBCwmtejNxbBiOhgpwE4/Zl4Ffiz4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R7r7t8sPlyymFDtGXmNNbRhS2ylHzGBJxQq/uVCyKcXF2Rb1MbvzrfTa8D3KwoY9YMuBF4JpXy3jka1WDQGYej2hhVH0D2jQKhUBPQnQX5IpviaMW6P6b/EhhfYsBJsbQ1m7EYRENGYX/8Zu7Sc72LvIRchybHGhUY7J0Yqc4tg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=2V5KCYPN; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (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.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="2V5KCYPN" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-21680814d42so107278165ad.2 for ; Wed, 15 Jan 2025 10:31:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736965864; x=1737570664; 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=BvcM8pFAUo8mVZOX2xDK8xE/vCf4z0GzB3iMLovGRHA=; b=2V5KCYPNp0U76KG2PIoShHSbNJPU9mEHsu81zC9a0t8P2xOrdUTFmWnZbyimrji4i9 I6BYXR0nwb/xN9BfQ/SVQyMICn1SHWn3+/Pj5o0Q5Zmc0XOv5V6fnsmkSRqV/TciErPl ghrwHKm7RNFJVcEEYMfWGKiypIawwl5EhfprDN2NsExbghPh2o+/6rtNLkWLJBKLzNn6 n0b4ruDqzuapGpAuhEcwas6a7Ue4XqDD/p2nhB5jUmJ8ej0ck25GD+PIvdCZddU2zysi blwZsDqKSH/OZMtWCW4h/IsGmpiGFvaEV5UzckN5WkSEFV7jQD2tajjZYlOrhdRpq8ub wJOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736965864; x=1737570664; 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=BvcM8pFAUo8mVZOX2xDK8xE/vCf4z0GzB3iMLovGRHA=; b=aVC8W3IeSFaRnP9Udz7czW2T2dZjloxO5956pJ3JSc0OrYXuZolKuuA5KyJ0pIX7Yw aJ5Ijgpm8v9GTorImsBVysv4+ekJqQe0f0hX+iDveFge8kdWEU6gUOqMIaKf3vExR+LW OxZB1sMbisnPvbc+nK5KhwANmowP/IfV1AyvzXDnz0KBs+w0hnXLhARJ6IhL2/qnZdIm woSOZcyr11zg0zSW3ztbarMTwtWyS17bqJJuS7MGf0rWs/z2AtSoS7YQJqk4hxwOiAf1 Dru/alHuL7zP56xFhW5lWgLcrKOoxxwExJhQYo+qwlSEY3Dc/GROTqtro5nJGMdO6DrO azzA== X-Forwarded-Encrypted: i=1; AJvYcCWZ4MaTLndXCVrpK/r9twc9T5+WINhEROBU7L328e8S6hEbFIGTTnXw9HT31Sdt/mAsstCkTKdysVuN0FM=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8u/CJ/m28U4SROrssQ7/2aJzw8nBc4BadUqGJA3VIhGSVDZOr ih7migBXc4g00TaetmuzpoP/AUzpIiLajgh4rkpcCTGvJn43P8/QfG0iE4A3F3k= X-Gm-Gg: ASbGncsvLrmWbpcaPAudvfW4MEz8KBXmrUarpcrinZzpyxRFnfiFH4C4Kk1k4Iiu/qL WpXoeDbsDvcHDCN3lM5n9dTqw07/p2/Iu5GsEkoI+T/203OGZCgWG1LrsGAt9yu9tK4hevjYhka gGg4zIdNZqmogkstJ0uK9x7SXU8JX4E7K3l9uZatVGdvofE5HDL1u16yfpe24lT3E0DlIqheV29 TyGXh1VmbY5rAMemof8270XzLiILnw5Zbs/TUr0C3R74irAwjayshtvoFI9CM2g0rJPQg== X-Google-Smtp-Source: AGHT+IGGezhqE5JLeDYHWhClhyZY1cGsFLOXrLsdEJgU2ElrVE/deMFlurFTVr/XKSOcI7Wz9ZYvgg== X-Received: by 2002:a17:902:e5ce:b0:216:386e:dd8 with SMTP id d9443c01a7336-21a83f54a51mr373139315ad.17.1736965864561; Wed, 15 Jan 2025 10:31:04 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f219f0dsm85333195ad.139.2025.01.15.10.31.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 10:31:04 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 10:30:48 -0800 Subject: [PATCH v2 8/9] 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: <20250115-pmu_event_info-v2-8-84815b70383b@rivosinc.com> References: <20250115-pmu_event_info-v2-0-84815b70383b@rivosinc.com> In-Reply-To: <20250115-pmu_event_info-v2-0-84815b70383b@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, Palmer Dabbelt , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-13183 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. Signed-off-by: Atish Patra --- arch/riscv/include/asm/kvm_vcpu_pmu.h | 3 ++ arch/riscv/kvm/vcpu_pmu.c | 66 +++++++++++++++++++++++++++++++= ++++ arch/riscv/kvm/vcpu_sbi_pmu.c | 3 ++ 3 files changed, 72 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 ca23427edfaa..23dedf4c9313 100644 --- a/arch/riscv/kvm/vcpu_pmu.c +++ b/arch/riscv/kvm/vcpu_pmu.c @@ -453,6 +453,72 @@ 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; + 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))) { + 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; + } + } + + if (kvm_vcpu_validate_gpa_range(vcpu, shmem, shmem_size, true)) { + 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); + if (ret > 0) + einfo[i].output =3D 1; + else + einfo[i].output =3D 0; + } + + kvm_vcpu_write_guest(vcpu, shmem, einfo, shmem_size); + if (ret) { + ret =3D SBI_ERR_FAILURE; + goto free_mem; + } + +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.34.1 From nobody Mon Feb 9 15:17:05 2026 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.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 6A1AE1D9A7D for ; Wed, 15 Jan 2025 18:31:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965868; cv=none; b=WAFs1kDwZpaUzFH0j+H8/wGchvp5qpbzIBNYYitcKHMGGETsl1YDR3PtRNRnm8RF4gE9bYBLMgCXA7zKF8w+l5fkzbPKaJW4KBrbwVbfVYEmPUtMXNyN8hAzBx5uJ+9Vp71Z2HuN9yXAuI1q41VPPjp8cwhQ8a1d7KoiKgHvbhw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736965868; c=relaxed/simple; bh=I61ANzW3mMGNw+TsEklnF5HMFHS9Ft60jqTehlaG7hM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Iimlr04l7lyqhrTv2S2awmDnjFW0YLpcM6bomB/0MuOO/WNxqgjY4YhVpmLxN9HLmALH31M2C4PN08EfH0gv1+K9Fs6I/ahNEs72toAo+0l8OccAMY79fqRpRzIceuY3/CjrOIcbMjA9AP+rhjsZqPRtbMYFl3McH+eFXKzX5rA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=jGKDLbGz; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (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.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="jGKDLbGz" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-21619108a6bso126527805ad.3 for ; Wed, 15 Jan 2025 10:31:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736965866; x=1737570666; 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=oS1moOcp9ct9rXCWQSjf/GhpQtGR0rWY3wjXVfG0zao=; b=jGKDLbGzpt+hAXvSI7EJJsBDiNY+gcB6fdufauX8OC66i9m2xfN/6fD4f35YpNon2W 1nPfAClCYuczg6HPMJMiNbai2enhvYVmDTwbDBc4/v+Lx6B+xKJzq6GlTkvtCPyAqGmY d3OpwsSQNo6gx671qQ9yropgpwksWpRUHk0zuWlFcy+VEK0fF10yb6BqWd0hxnnD4cCf Kj/6CrvhoIEPl4OhjifC4o8k9SK8kIbCM61J7TV9iNIk+dN8LlT1POsiEwMxbuZ5arXv 0cBf731ZnRvJOX3u+VpG1o3KsMuUuFHWToQWVJ19m6j42gwwk3YNBnNXaSEkYdeafJ1J MGdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736965866; x=1737570666; 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=oS1moOcp9ct9rXCWQSjf/GhpQtGR0rWY3wjXVfG0zao=; b=LMkosP6iiaBsnrcyYoCq6UPA5vG0olGX4AKYtHcgmF+fGMGklrF5kvax5sECfMXkhy uIbARlf0iQca+hB1hLciFD23a74cEG/Pc0z+v9SqmI7UKN3Bri7nBbemJDIvCGRbfq+X Adta+grGjhkT4KmmcYFlaHb6P8ATLm200PKMGArBT6fbS72pgFgjMvAsRD1TGwYskHV8 ISgUsHp2SvfgTCtKt/GhB2I7WcHRKC4Mt/tLgVEX0WIinUYrnGjqu2itkjk9y740Jve0 tduTvTSzEnYYB9EyVbhitsbBTEZo1k86CWx38KY2CqcH+WYYtYINWDwIleDY2SjiS7/6 uwiA== X-Forwarded-Encrypted: i=1; AJvYcCUERNA3MsGX6fuFfWL8xKyuW5Vhc/dqv81shZY5GkGsc7a4hS3+jrv3s2CCNyM5jWNJP7/mC2EppiNi3C4=@vger.kernel.org X-Gm-Message-State: AOJu0YzRC1Q/Fvv/2WOnhpHnY93+fe5owQASh5MC75H0toO+A73vJN7Y AsJCWX24YmpuJ23o6PxU6vW5UuB9/qB5mmgCCl07wYvuKBr9sNOGFHdU1DUMEIo= X-Gm-Gg: ASbGncuS6bRZXEP8SR61aeYb3fsmNTAhU3gNPyP9IeIP3dzjxSvJCe+b5fzvT04d7j9 dWZIpH8vhXLLR4zql0KnQzrw7Zb9bjDjWqZwL9o3tZXI9+Q/DYs1p3xzFA5zz68XIKmFRX9JOod VLCRvf750y+vvVxPIYM9Erlyoj0PmrlxfatVi+euQaj8Jao2CYKCJUL6WhAlaLvI65k827KmS8i djdbPMuL11pB/cjmwMGckSgmYZ8Y001ZYWGMtfk38AVSv6/EP9O1UczcZtpYuddmaNKrA== X-Google-Smtp-Source: AGHT+IGUgwpGj/plYJTZ8pJ5gD95k5t13F6GWcCCeHibqJhYXgtv9S5eRA0RKAcOGIqFSWIv1IyJjA== X-Received: by 2002:a17:902:fc8f:b0:215:787a:f91a with SMTP id d9443c01a7336-21a83fd1e96mr525986085ad.44.1736965865659; Wed, 15 Jan 2025 10:31:05 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f219f0dsm85333195ad.139.2025.01.15.10.31.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2025 10:31:05 -0800 (PST) From: Atish Patra Date: Wed, 15 Jan 2025 10:30:49 -0800 Subject: [PATCH v2 9/9] 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: <20250115-pmu_event_info-v2-9-84815b70383b@rivosinc.com> References: <20250115-pmu_event_info-v2-0-84815b70383b@rivosinc.com> In-Reply-To: <20250115-pmu_event_info-v2-0-84815b70383b@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, Palmer Dabbelt , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Atish Patra X-Mailer: b4 0.15-dev-13183 Upgrade the SBI version to v3.0 so that corresponding features can be enabled in the guest. Signed-off-by: Atish Patra --- 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 b96705258cf9..239457b864d7 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.34.1