All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH] cpufreq_intel: Check for per-CPU online file presence before reading
@ 2026-08-28 23:09 Wake Liu via ltp
  2026-08-29  3:33 ` [LTP] " linuxtestproject.agent
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Wake Liu via ltp @ 2026-08-28 23:09 UTC (permalink / raw)
  To: ltp; +Cc: Wake Liu, Grzegorz Jaszczyk

From: Grzegorz Jaszczyk <jaszczyk@google.com>

In setup(), the test assumes that all secondary CPUs (cpu1..cpuN-1)
expose '/sys/devices/system/cpu/cpu<N>/online' and attempts to read
their status using SAFE_FILE_SCANF().

However, on systems where CPU hotplugging is disabled (e.g. kernels
built without CONFIG_HOTPLUG_CPU or platforms where CPUs are not
hotpluggable), the per-CPU 'online' sysfs attributes are not created.
Calling SAFE_FILE_SCANF() on a non-existent file results in ENOENT
and breaks test setup with TBROK.

Check for the existence of the per-CPU 'online' file with access()
first. If the file exists, read the status via SAFE_FILE_SCANF(); if
it does not exist, assume the CPU is not hotpluggable and is
permanently online.

Signed-off-by: Grzegorz Jaszczyk <jaszczyk@google.com>
Signed-off-by: Wake Liu <wakel@google.com>
---
 testcases/kernel/power_management/cpufreq_intel.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/testcases/kernel/power_management/cpufreq_intel.c b/testcases/kernel/power_management/cpufreq_intel.c
index 11896258e..a2a3f3475 100644
--- a/testcases/kernel/power_management/cpufreq_intel.c
+++ b/testcases/kernel/power_management/cpufreq_intel.c
@@ -94,8 +94,16 @@ static void setup(void)
 		int tmp;
 
 		snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%d/online", i);
-		SAFE_FILE_SCANF(path, "%d", &tmp);
-		online[i] = (bool)tmp;
+		if (access(path, F_OK) == 0) {
+			SAFE_FILE_SCANF(path, "%d", &tmp);
+			online[i] = (bool)tmp;
+		} else {
+			/*
+			 * If the 'online' file is missing, the CPU is not
+			 * hotpluggable and is permanently online.
+			 */
+			online[i] = true;
+		}
 	}
 
 	SAFE_FILE_PRINTF("/sys/devices/system/cpu/intel_pstate/status", "active");
-- 
2.55.0.897.gb25b4bd76c-goog


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-08-31 10:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-28 23:09 [LTP] [PATCH] cpufreq_intel: Check for per-CPU online file presence before reading Wake Liu via ltp
2026-08-29  3:33 ` [LTP] " linuxtestproject.agent
2026-08-31  9:58 ` [LTP] [PATCH] " Kubaj, Piotr
2026-08-31 10:49 ` Andrea Cervesato via ltp
2026-08-31 10:50 ` Andrea Cervesato via ltp

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.