[LTP] [PATCH v5] thermal: add new test group
Petr Vorel
pvorel@suse.cz
Fri Jan 30 00:38:57 CET 2026
Hi Piotr, all,
...
> +static void setup(void)
> +{
> + char line[8192];
> +
> + nproc = tst_ncpus();
> + tst_res(TDEBUG, "Number of logical cores: %d", nproc);
> + interrupt_init = calloc(nproc, sizeof(uint64_t));
> + interrupt_later = calloc(nproc, sizeof(uint64_t));
> +
> + DIR *dir = SAFE_OPENDIR("/sys/class/thermal/");
> + struct dirent *entry;
> +
> + tz_counter = 0;
> +
> + while ((entry = SAFE_READDIR(dir))) {
> + if ((strncmp(entry->d_name, "thermal_zone", sizeof("thermal_zone"))) > 0)
> + tz_counter++;
> + }
> + SAFE_CLOSEDIR(dir);
> + tst_res(TDEBUG, "Found %d thermal zone(s)", tz_counter);
> +
> + interrupts(interrupt_init, nproc);
> +
> + x86_pkg_temp_tz = calloc(tz_counter, sizeof(bool));
> +
> + for (int i = 0; i < tz_counter; i++) {
> + char path[NAME_MAX];
> +
> + snprintf(path, NAME_MAX, "/sys/class/thermal/thermal_zone%d/type", i);
> + tst_res(TDEBUG, "Checking whether %s is x86_pkg_temp", path);
> +
> + SAFE_FILE_SCANF(path, "%s", line);
> + if (strstr(line, "x86_pkg_temp")) {
> + tst_res(TDEBUG, "Thermal zone %d uses x86_pkg_temp", i);
> + x86_pkg_temp_tz[i] = 1;
> + x86_pkg_temp_tz_found = 1;
> + }
> + }
> +
> + if (!x86_pkg_temp_tz_found)
> + tst_brk(TCONF, "No thermal zone uses x86_pkg_temp");
NOTE: any tst_brk() causes cleanup() being called before test exit.
> +}
> +
> +static void cleanup(void)
> +{
Therefore this must be guarded:
> + SAFE_FILE_PRINTF(trip_path, "%d", trip);
if (x86_pkg_temp_tz_found)
SAFE_FILE_PRINTF(trip_path, "%d", trip);
(Detectable on machine without x86_pkg_temp, e.g. VM).
Kind regards,
Petr
> + free(interrupt_init);
> + free(interrupt_later);
> +}
More information about the ltp
mailing list