From: "tip-bot2 for Ahmed S. Darwish" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: "Ahmed S. Darwish" <darwi@linutronix.de>,
Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: x86/cpu] x86/cacheinfo: Extract out cache level topology ID calculation
Date: Tue, 25 Mar 2025 09:36:17 -0000 [thread overview]
Message-ID: <174289537779.14745.5136570352994170049.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20250324133324.23458-26-darwi@linutronix.de>
The following commit has been merged into the x86/cpu branch of tip:
Commit-ID: fda5f817ae41035db9e36854600525145688b35e
Gitweb: https://git.kernel.org/tip/fda5f817ae41035db9e36854600525145688b35e
Author: Ahmed S. Darwish <darwi@linutronix.de>
AuthorDate: Mon, 24 Mar 2025 14:33:20 +01:00
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Tue, 25 Mar 2025 10:23:21 +01:00
x86/cacheinfo: Extract out cache level topology ID calculation
For Intel CPUID leaf 0x4 parsing, refactor the cache level topology ID
calculation code into its own method instead of repeating the same logic
twice for L2 and L3.
Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20250324133324.23458-26-darwi@linutronix.de
---
arch/x86/kernel/cpu/cacheinfo.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/arch/x86/kernel/cpu/cacheinfo.c b/arch/x86/kernel/cpu/cacheinfo.c
index 72cc32d..7b274da 100644
--- a/arch/x86/kernel/cpu/cacheinfo.c
+++ b/arch/x86/kernel/cpu/cacheinfo.c
@@ -400,6 +400,16 @@ static void intel_cacheinfo_0x2(struct cpuinfo_x86 *c)
intel_cacheinfo_done(c, l3, l2, l1i, l1d);
}
+static unsigned int calc_cache_topo_id(struct cpuinfo_x86 *c, const struct _cpuid4_info *id4)
+{
+ unsigned int num_threads_sharing;
+ int index_msb;
+
+ num_threads_sharing = 1 + id4->eax.split.num_threads_sharing;
+ index_msb = get_count_order(num_threads_sharing);
+ return c->topo.apicid & ~((1 << index_msb) - 1);
+}
+
static bool intel_cacheinfo_0x4(struct cpuinfo_x86 *c)
{
struct cpu_cacheinfo *ci = get_cpu_cacheinfo(c->cpu_index);
@@ -420,7 +430,6 @@ static bool intel_cacheinfo_0x4(struct cpuinfo_x86 *c)
return false;
for (int i = 0; i < ci->num_leaves; i++) {
- unsigned int num_threads_sharing, index_msb;
struct _cpuid4_info id4 = {};
int ret;
@@ -437,15 +446,11 @@ static bool intel_cacheinfo_0x4(struct cpuinfo_x86 *c)
break;
case 2:
l2 = id4.size / 1024;
- num_threads_sharing = 1 + id4.eax.split.num_threads_sharing;
- index_msb = get_count_order(num_threads_sharing);
- l2_id = c->topo.apicid & ~((1 << index_msb) - 1);
+ l2_id = calc_cache_topo_id(c, &id4);
break;
case 3:
l3 = id4.size / 1024;
- num_threads_sharing = 1 + id4.eax.split.num_threads_sharing;
- index_msb = get_count_order(num_threads_sharing);
- l3_id = c->topo.apicid & ~((1 << index_msb) - 1);
+ l3_id = calc_cache_topo_id(c, &id4);
break;
default:
break;
next prev parent reply other threads:[~2025-03-25 9:36 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-24 13:32 [PATCH v4 00/29] x86: Leaf 0x2 and leaf 0x4 refactorings Ahmed S. Darwish
2025-03-24 13:32 ` [PATCH v4 01/29] x86/cpu: Remove leaf 0x2 parsing loop Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cpu: Remove CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:32 ` [PATCH v4 02/29] x86/cacheinfo: Remove " Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Remove CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:32 ` [PATCH v4 03/29] x86/cpu: Introduce and use leaf 0x2 parsing helpers Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cpu: Introduce and use CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:32 ` [PATCH v4 04/29] x86/cacheinfo: Use " Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Use CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 05/29] x86/cacheinfo: Refactor leaf 0x2 cache descriptor lookup Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Refactor CPUID " tip-bot2 for Thomas Gleixner
2025-03-24 13:33 ` [PATCH v4 06/29] x86/cacheinfo: Properly name amd_cpuid4()'s first parameter Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner
2025-03-24 13:33 ` [PATCH v4 07/29] x86/cacheinfo: Use proper name for cacheinfo instances Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner
2025-03-24 13:33 ` [PATCH v4 08/29] x86/cacheinfo: Constify _cpuid4_info_regs instances Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 09/29] x86/cacheinfo: Align ci_info_init() assignment expressions Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 10/29] x86/cacheinfo: Standardize _cpuid4_info_regs instance naming Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 11/29] x86/cacheinfo: Consolidate AMD/Hygon leaf 0x8000001d calls Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 12/29] x86/cacheinfo: Separate amd_northbridge from _cpuid4_info_regs Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 13/29] x86/cacheinfo: Move AMD cache_disable_0/1 handling to separate file Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 14/29] x86/cacheinfo: Use sysfs_emit() for sysfs attributes show() Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 15/29] x86/cacheinfo: Separate Intel and AMD leaf 0x4 code paths Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Separate Intel and AMD CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 16/29] x86/cacheinfo: Rename _cpuid4_info_regs to _cpuid4_info Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Rename 'struct _cpuid4_info_regs' to 'struct _cpuid4_info' tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 17/29] x86/cacheinfo: Clarify type markers for leaf 0x2 cache descriptors Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Clarify type markers for CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 18/29] x86/cacheinfo: Use enums for cache descriptor types Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 19/29] x86/cpu: Use enums for TLB " Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 20/29] x86/cpu: Consolidate CPUID leaf 0x2 tables Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Thomas Gleixner
2025-03-24 13:33 ` [PATCH v4 21/29] x86/cacheinfo: Use consolidated leaf 0x2 descriptor table Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Use consolidated CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 22/29] x86/cpu: Use consolidated " Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cpu: Use consolidated CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 23/29] x86/cacheinfo: Separate leaf 0x2 handling and post-processing logic Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Separate CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 24/29] x86/cacheinfo: Separate Intel leaf 0x4 handling Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Separate Intel CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 25/29] x86/cacheinfo: Extract out cache level topology ID calculation Ahmed S. Darwish
2025-03-25 9:36 ` tip-bot2 for Ahmed S. Darwish [this message]
2025-03-24 13:33 ` [PATCH v4 26/29] x86/cacheinfo: Extract out cache self-snoop checks Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 27/29] x86/cacheinfo: Relocate leaf 0x4 cache_type mapping Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] x86/cacheinfo: Relocate CPUID " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 28/29] x86/cacheinfo: Introduce cpuid_amd_hygon_has_l3_cache() Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
2025-03-24 13:33 ` [PATCH v4 29/29] x86/cacheinfo: Apply maintainer-tip coding style fixes Ahmed S. Darwish
2025-03-25 9:36 ` [tip: x86/cpu] " tip-bot2 for Ahmed S. Darwish
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=174289537779.14745.5136570352994170049.tip-bot2@tip-bot2 \
--to=tip-bot2@linutronix.de \
--cc=darwi@linutronix.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®