[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <174022717804.10177.14425767347553583879.tip-bot2@tip-bot2>
Date: Sat, 22 Feb 2025 12:26:18 -0000
From: "tip-bot2 for Maciej Wieczor-Retman" <tip-bot2@...utronix.de>
To: linux-tip-commits@...r.kernel.org
Cc: "Maciej Wieczor-Retman" <maciej.wieczor-retman@...el.com>,
Ingo Molnar <mingo@...nel.org>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Alexander Potapenko <glider@...gle.com>,
Peter Zijlstra <peterz@...radead.org>, Shuah Khan <skhan@...uxfoundation.org>,
x86@...nel.org, linux-kernel@...r.kernel.org
Subject: [tip: x86/mm] selftests/lam: Move cpu_has_la57() to use cpuinfo flag
The following commit has been merged into the x86/mm branch of tip:
Commit-ID: ec8f5b4659b4044db55e1f7d947703dd4948626c
Gitweb: https://git.kernel.org/tip/ec8f5b4659b4044db55e1f7d947703dd4948626c
Author: Maciej Wieczor-Retman <maciej.wieczor-retman@...el.com>
AuthorDate: Mon, 27 Jan 2025 16:31:55 +01:00
Committer: Ingo Molnar <mingo@...nel.org>
CommitterDate: Sat, 22 Feb 2025 13:17:07 +01:00
selftests/lam: Move cpu_has_la57() to use cpuinfo flag
In current form cpu_has_la57() reports platform's support for LA57
through reading the output of cpuid. A much more useful information is
whether 5-level paging is actually enabled on the running system.
Check whether 5-level paging is enabled by trying to map a page in the
high linear address space.
Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@...el.com>
Signed-off-by: Ingo Molnar <mingo@...nel.org>
Cc: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com>
Cc: Dave Hansen <dave.hansen@...ux.intel.com>
Cc: Alexander Potapenko <glider@...gle.com>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Shuah Khan <skhan@...uxfoundation.org>
Link: https://lore.kernel.org/r/8b1ca51b13e6d94b5a42b6930d81b692cbb0bcbb.1737990375.git.maciej.wieczor-retman@intel.com
---
tools/testing/selftests/x86/lam.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/x86/lam.c b/tools/testing/selftests/x86/lam.c
index 4d4a765..60170a3 100644
--- a/tools/testing/selftests/x86/lam.c
+++ b/tools/testing/selftests/x86/lam.c
@@ -124,14 +124,18 @@ static inline int cpu_has_lam(void)
return (cpuinfo[0] & (1 << 26));
}
-/* Check 5-level page table feature in CPUID.(EAX=07H, ECX=00H):ECX.[bit 16] */
-static inline int cpu_has_la57(void)
+static inline int la57_enabled(void)
{
- unsigned int cpuinfo[4];
+ int ret;
+ void *p;
+
+ p = mmap((void *)HIGH_ADDR, PAGE_SIZE, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
- __cpuid_count(0x7, 0, cpuinfo[0], cpuinfo[1], cpuinfo[2], cpuinfo[3]);
+ ret = p == MAP_FAILED ? 0 : 1;
- return (cpuinfo[2] & (1 << 16));
+ munmap(p, PAGE_SIZE);
+ return ret;
}
/*
@@ -322,7 +326,7 @@ static int handle_mmap(struct testcases *test)
flags, -1, 0);
if (ptr == MAP_FAILED) {
if (test->addr == HIGH_ADDR)
- if (!cpu_has_la57())
+ if (!la57_enabled())
return 3; /* unsupport LA57 */
return 1;
}
Powered by blists - more mailing lists