From nobody Sat Apr 4 01:35:42 2026 Received: from mail-106120.protonmail.ch (mail-106120.protonmail.ch [79.135.106.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 025522F617C for ; Sat, 21 Mar 2026 20:42:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=79.135.106.120 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774125732; cv=none; b=oXhRWizKKN/epBkyGWtZdPScKmyN4r9s6g6w/xOvWQIJqp82XvDIKp4zreEnrvicAoRRtRKtxAu7tbo4DjFAuRim9co+gh0ndr+aOveCYWMjyjhdg2+vUV95oWO1eqgB64QwQRyrIDwIgdm3wHrg/iPeSS3Idx0EntJ75buepyI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774125732; c=relaxed/simple; bh=OZ0vhkXcESWaXlMFXjP4BGNct8iBYgWofxs1xvphzlg=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=W3Lu9ah/cx8ebUnD4Me/yRYbudWz2rDnQLyp+asXtHJVJoSAABL6R/nk3f4jJUMN3E4PyRasvDqzs3dSFa8xw1izvmCyeD75arJdTjr9QL//2RBBQ7JiCTpLN12w5f1JyZHHj4KpAZk/yYE0ZYdDpXOyUHRd/OQxStdyVMgwz0M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=proton.me; spf=pass smtp.mailfrom=proton.me; dkim=pass (2048-bit key) header.d=proton.me header.i=@proton.me header.b=OjxNZTNB; arc=none smtp.client-ip=79.135.106.120 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=proton.me Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=proton.me Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=proton.me header.i=@proton.me header.b="OjxNZTNB" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1774125721; x=1774384921; bh=Ke2uly3CsHt/RmfSFsTRHn/NTy3Zx3KoDqFMpc6RCGk=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=OjxNZTNB0S24AQAVIKwZfTCcMD0n59RQ93yzEEwiAb+YPZzZDr65RB1dHWtYDOjiZ I/aVSSt9jxlHqexQ1j/PlezWlpoJ/Y4oLKn+BFRyr0O7hy64kuwly9agHUoyPeuKWG r1Ozw/JLHWIrUMJxwy4O5THNOSy+5YQU42B/aSDWzMCFq9FpqzbBU4rjK9m9VqtE+c PWthFNCwFzO+U2KZJZWnr+432w26c4XokQjo5P7jrYyU34yvOaaCi8HS/Bydhgs3AN dR64M4TY0nuDvfRULyvq5oVYSoyjRvtfFMJvpzqxt+Yc1LbiVuPzN83VweN+iXg4aY K4sjYZLc3TdlQ== Date: Sat, 21 Mar 2026 20:41:55 +0000 To: irogers@google.com From: Ricky Ringler Cc: namhyung@kernel.org, mingo@redhat.com, acme@kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Ricky Ringler Subject: [PATCH v4] perf utilities: cln_size header Message-ID: <20260321204145.26359-1-ricky.ringler@proton.me> In-Reply-To: References: <20260214040659.168769-2-ricky.ringler@proton.me> <20260305235655.40779-1-ricky.ringler@proton.me> <20260308172037.123654-1-ricky.ringler@proton.me> Feedback-ID: 171348601:user:proton X-Pm-Message-ID: 0ed19f67388df8c80fbf6644b63e166ebd9fc15b Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Store cacheline size during perf record in header, so that cacheline size can be used for other features, like sort. V4: Ian feedback V3: Rebase off perf-tools-next round two V2: Rebase off perf-tools-next Follow-up patch from message ID "aYZiQk6Uftzlb_JV@x1" Testing: - Built perf - Ran record + report with feat enabled - Ran record + report with feat disabled Tested-by: Ricky Ringler Signed-off-by: Ricky Ringler Tested-by tag from the author may not be meaningful. We always expect --- tools/perf/builtin-inject.c | 2 +- tools/perf/util/header.c | 11 ++++++++--- tools/perf/util/sort.c | 8 ++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c index 2675d32f88cf..11ac7c8c4be3 100644 --- a/tools/perf/builtin-inject.c +++ b/tools/perf/builtin-inject.c @@ -2134,7 +2134,7 @@ static bool keep_feat(struct perf_inject *inject, int= feat) case HEADER_HYBRID_TOPOLOGY: case HEADER_PMU_CAPS: case HEADER_CPU_DOMAIN_INFO: - case HEADER_CLNq_SIZE: + case HEADER_CLN_SIZE: return true; /* Information that can be updated */ case HEADER_BUILD_ID: diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 4f65faafe75d..2d39da470267 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -1310,8 +1310,13 @@ static int write_cln_size(struct feat_fd *ff, { int cln_size =3D cacheline_size(); =20 - if (!cln_size) - cln_size =3D 0; + + if (!cln_size) { + int default_cacheline_size =3D 64; + + cln_size =3D default_cacheline_size; + } + ff->ph->env.cln_size =3D cln_size; =20 return do_write(ff, &cln_size, sizeof(cln_size)); @@ -2274,7 +2279,7 @@ static void print_cache(struct feat_fd *ff, FILE *fp = __maybe_unused) } } =20 -static void print_cln_size(struct feat_fd *ff, FILE *fp __maybe_unused) +static void print_cln_size(struct feat_fd *ff, FILE *fp) { fprintf(fp, "# cacheline size: %u\n", ff->ph->env.cln_size); } diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index 13287ade784e..5f617cf03d5d 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c @@ -2483,8 +2483,12 @@ hist_entry__cln_size(struct hist_entry *he) if (he && he->hists) { struct evsel *evsel =3D hists_to_evsel(he->hists); =20 - if (evsel && evsel->evlist->session && evsel->evlist->session) - ret =3D evsel->evlist->session->header.env.cln_size; + + if (evsel) { + struct perf_session *session =3D evsel__session(evsel); + + ret =3D session->header.env.cln_size; + } } =20 if (!ret || ret < 1) { --=20 2.53.0