static void extract_cpu(pid_t pid) { char *fname; if (asprintf(&fname, "/proc/%d/root%s", pid, RUN_CPU_CFG) == -1) errExit("asprintf"); struct stat s; if (stat(fname, &s) == -1) return; // there is a CPU_CFG file, load it! load_cpu(fname); free(fname); }
static void test_run(void) { int boost_time, boost_off_time, max_freq_khz; SAFE_FILE_SCANF(cleanup, maxspeed, "%d", &max_freq_khz); tst_resm(TINFO, "maximum speed is %d KHz", max_freq_khz); /* Enable boost */ if (boost_value == cdrv[id].off) SAFE_FILE_PRINTF(cleanup, cdrv[id].file, "%s", cdrv[id].on_str); tst_resm(TINFO, "load CPU0 with boost enabled"); boost_time = load_cpu(max_freq_khz); /* Disable boost */ SAFE_FILE_PRINTF(cleanup, cdrv[id].file, "%s", cdrv[id].off_str); tst_resm(TINFO, "load CPU0 with boost disabled"); boost_off_time = load_cpu(max_freq_khz); boost_off_time *= .98; tst_resm((boost_time < boost_off_time) ? TPASS : TFAIL, "compare time spent with and without boost (-2%%)"); }
static void extract_cpu(pid_t pid) { char *fname; if (asprintf(&fname, "/proc/%d/root%s/cpu", pid, MNT_DIR) == -1) errExit("asprintf"); struct stat s; if (stat(fname, &s) == -1) return; // there is a cpu file in MNT_DIR; load the information from the file load_cpu(fname); free(fname); }