From nobody Wed Apr 1 22:18:45 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 C94B744D039 for ; Wed, 1 Apr 2026 14:26:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775053573; cv=none; b=PiP7CxUU01AbLg7vv0Xf2723usQtamrC18EOLaGkt7ERlvBMkBvFmCrAma5Bft/LiS4XcM6U2iJGfbHWzTp8jAagvaFJfLRDfvbodArpvoYVmXgYVeAmQwYVsiwAMACn31TSY2XnKBqulJL4Zd03ssRaLDcGoKMhLYMEf1DLT+8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775053573; c=relaxed/simple; bh=+FMZz6XfK7GZAd6AXUWNQbC86FlwgnBY/fa7MUm++S4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bwvDRnidg3TNUTAXUHJA5fcRIpJDbdIbmF254LBseFxXisi4nwCOP0iNf+c5T7zHnNolmkLvieJrIMqNncnNSMQ0edaAWnn8EQkBCPTKEy69muKst7+75K3Udp8BNBVh+7XIfXsXtOB5cf0rf1xXZgqu0OS11G7zug31PgN8LoI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=O8Dt/s7N; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="O8Dt/s7N" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-48700b1ba53so64475185e9.1 for ; Wed, 01 Apr 2026 07:26:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1775053570; x=1775658370; 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=Oqas3u7UM5z91PWtBVrB+LRpDVECVVS14S5CCLaW82w=; b=O8Dt/s7NGDBRkpWq694HWuqklHzI1sZDtUKdUpb7R9ZRJctLIOQ6sG+e+KSH3Tcr5N 6Ylri3IqVf3iVypZCHHGC0FtfDkh5vkVsKCTy9bYwuaD61Y8jbrpW1kGRWpfVZozyert K2BXzSXf/sk6pSXQcDOGuE8ElvSnVMI6viCH26xE1ueBulCwoMDLH6+idTa/9SjRCOla +/U7qSecg0TOyMs2o+hMcX0M89JesgsDKfOMvV09h1njXchAd8d4H+Yb/eQFQNrSYtbm SbG4dI0P86eUMfchIKE4IjRm7bdh9NWPCgosW86haT6Fltg+kctq4biQBNzdN7a+IZD3 iKXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775053570; x=1775658370; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Oqas3u7UM5z91PWtBVrB+LRpDVECVVS14S5CCLaW82w=; b=n8PqCEpLTKyGkN6VjiJhC7pAwtgGfZTontQrvkmQbgNInqSupQh7woiOm5GygffZXQ bfSXE+opo29MWlZzQq8VDgp3fB9A9uu0KZ+Ri8k1VwWxolGTqtf8hhSuV1gE+Roqygc4 CFOY6HpABLP2bi4NMkVuli176FOv5XGi8O3DBjBUezefS9zckKiMJgvc/OAwEy8y4YRK lVnPVo7nAC8PeLZh2hIBX8zQGXswrECZ16BNtLK31htUCNGJddhB8/jNpplz08iZeaeB bzh1SLUDNRZdKEm+VElMKDswX/6uLefgeGnn80PWsf5Q2h6GPV6vpanhc9t+iT5XrFHQ /RiQ== X-Forwarded-Encrypted: i=1; AJvYcCVUAdy42H0/ztgPnv10XorvepgnevF8ZUD4Sm5/5ufezvrh61iQb7bjfm6npaTkG2sqEbn1gOTC5U39Tdo=@vger.kernel.org X-Gm-Message-State: AOJu0YwyzbAs4TWuV3SPLCIy29RnlZc4r4OKYXAm5e6WcQh/rMQrX3qC vxieDHbTC1Hoj/AjiN2n04vVTBrrNtZ0f6lL9o0sBPv4mNVSy2Vb41/1pkpHmyxaJMI= X-Gm-Gg: ATEYQzwFcwV6uhvh6mfANv2xqSPBeI8M9+h0zYDH8eTaMaDm1fihXpA5h/c6fg67uAh qxD8jtGtbMUFrhNC8dtTIONgE0/7AXS3YLV3EQUU8NZTpVpKPe7/zKqNNpuKCtEBxJA3wzrfVJ/ nGzp0QP39/S6aSlXOW9KCgB7KQaft4QAG6XPG5XryfRt6HJEJ6/VyJfJdc11LON9RW1HO/zgD02 s0nIDfXNMXLsQ1Cb66zBO1I3spgfqHFcsGELyPbTnc1Oxh0tF2kvc6TWJSiKXEEfsClXFKJVoPQ ZoCUNlRhbA2OBiWeH+ejO2tpgKJMeY9liEJme6b93sQrLLZx0HZW8dNqlrvx08KCVsAqg03mKci lCNi3LliOsa7biofxMNXs63tZW+pzro3EcMHX+YEdC7RxCAeb7ftKhJpJxAE35V5u6MPNvPHEy0 qzOgQeVqpPnSiVPB0UDARWeFNw5Fgkqkf6 X-Received: by 2002:a05:600c:c04a:b0:486:f9aa:2b57 with SMTP id 5b1f17b1804b1-48883597e39mr46789365e9.16.1775053570170; Wed, 01 Apr 2026 07:26:10 -0700 (PDT) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4888a63c9b1sm2305595e9.5.2026.04.01.07.26.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 07:26:09 -0700 (PDT) From: James Clark Date: Wed, 01 Apr 2026 15:25:49 +0100 Subject: [PATCH 1/4] perf arm_spe: Make a function to get the MIDR 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: <20260401-james-spe-impdef-decode-v1-1-ad0d372c220c@linaro.org> References: <20260401-james-spe-impdef-decode-v1-0-ad0d372c220c@linaro.org> In-Reply-To: <20260401-james-spe-impdef-decode-v1-0-ad0d372c220c@linaro.org> To: John Garry , Will Deacon , Mike Leach , Leo Yan , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Al Grant Cc: linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 We'll need the MIDR to dump IMPDEF events in the next commits so extract a function for it. No functional changes intended. Signed-off-by: James Clark --- tools/perf/util/arm-spe.c | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c index 70dd9bee47c7..7447b000f9cd 100644 --- a/tools/perf/util/arm-spe.c +++ b/tools/perf/util/arm-spe.c @@ -958,14 +958,9 @@ static void arm_spe__synth_memory_level(struct arm_spe= _queue *speq, } } =20 -static void arm_spe__synth_ds(struct arm_spe_queue *speq, - const struct arm_spe_record *record, - union perf_mem_data_src *data_src) +static int arm_spe__get_midr(struct arm_spe *spe, int cpu, u64 *midr) { - struct arm_spe *spe =3D speq->spe; - u64 *metadata =3D NULL; - u64 midr; - unsigned int i; + u64 *metadata; =20 /* Metadata version 1 assumes all CPUs are the same (old behavior) */ if (spe->metadata_ver =3D=3D 1) { @@ -973,15 +968,28 @@ static void arm_spe__synth_ds(struct arm_spe_queue *s= peq, =20 pr_warning_once("Old SPE metadata, re-record to improve decode accuracy\= n"); cpuid =3D perf_env__cpuid(perf_session__env(spe->session)); - midr =3D strtol(cpuid, NULL, 16); - } else { - metadata =3D arm_spe__get_metadata_by_cpu(spe, speq->cpu); - if (!metadata) - return; - - midr =3D metadata[ARM_SPE_CPU_MIDR]; + *midr =3D strtol(cpuid, NULL, 16); + return 0; } =20 + metadata =3D arm_spe__get_metadata_by_cpu(spe, cpu); + if (!metadata) + return -EINVAL; + + *midr =3D metadata[ARM_SPE_CPU_MIDR]; + return 0; +} + +static void arm_spe__synth_ds(struct arm_spe_queue *speq, + const struct arm_spe_record *record, + union perf_mem_data_src *data_src) +{ + u64 midr; + unsigned int i; + + if (arm_spe__get_midr(speq->spe, speq->cpu, &midr)) + return; + for (i =3D 0; i < ARRAY_SIZE(data_source_handles); i++) { if (is_midr_in_range_list(midr, data_source_handles[i].midr_ranges)) { return data_source_handles[i].ds_synth(record, data_src); --=20 2.34.1