int aperf_mperf_unstable;
int backwards_count;
-char *progname;
cpu_set_t *cpu_present_set, *cpu_affinity_set;
size_t cpu_present_setsize, cpu_affinity_setsize;
open_msr(int cpu)
{
char pathname[32];
+ int fd;
/* FIXME: Do we really need this, why? */
if (cpu_migrate(cpu)) {
- ERROR("Could not migrate to CPU %d\n", cpu);
+ ERROR("Could not migrate to CPU %d", cpu);
return -ERR_CPU_MIGRATE;
}
- ssnprintf(pathname, 32, "/dev/cpu/%d/msr", cpu);
- return open(pathname, O_RDONLY);
+ ssnprintf(pathname, sizeof(pathname), "/dev/cpu/%d/msr", cpu);
+ fd = open(pathname, O_RDONLY);
+ if (fd < 0)
+ return -ERR_CANT_OPEN_MSR;
+ return fd;
}
static int __attribute__((warn_unused_result))
retval = pread(fd, msr, sizeof *msr, offset);
if (retval != sizeof *msr) {
- ERROR ("MSR offset 0x%llx read failed", (unsigned long long)offset);
+ ERROR("MSR offset 0x%llx read failed", (unsigned long long)offset);
return -1;
}
return 0;
fd = open_msr(cpu);
if (fd < 0)
- return -1;
+ return fd;
retval = read_msr(fd, offset, msr);
close(fd);
return retval;
/* check for TSC < 1 Mcycles over interval */
if (old->tsc < (1000 * 1000)) {
- WARNING("Insanely slow TSC rate, TSC stops in idle?\n"
- "You can disable all c-states by booting with \"idle=poll\"\n"
- "or just the deep ones with \"processor.max_cstate=1\"");
+ WARNING("Insanely slow TSC rate, TSC stops in idle? ");
+ WARNING("You can disable all c-states by booting with \"idle=poll\" ");
+ WARNING("or just the deep ones with \"processor.max_cstate=1\"");
return -1;
}
} else {
if (!aperf_mperf_unstable) {
- WARNING("%s: APERF or MPERF went backwards *\n", progname);
- WARNING("* Frequency results do not cover entire interval *\n");
- WARNING("* fix this by running Linux-2.6.30 or later *\n");
+ WARNING(" APERF or MPERF went backwards * ");
+ WARNING("* Frequency results do not cover entire interval *");
+ WARNING("* fix this by running Linux-2.6.30 or later *");
aperf_mperf_unstable = 1;
}
}
if (old->mperf == 0) {
- WARNING("cpu%d MPERF 0!\n", old->cpu_id);
+ WARNING("cpu%d MPERF 0!", old->cpu_id);
old->mperf = 1; /* divide by 0 protection */
}
msr_fd = open_msr(cpu);
if (msr_fd < 0)
- return -ERR_CANT_OPEN_MSR;
+ return msr_fd;
#define READ_MSR(msr, dst) \
do { \
int matches;
char character;
- ssnprintf(path, 80, "/sys/devices/system/cpu/cpu%d/topology/thread_siblings_list", cpu);
+ ssnprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%d/topology/thread_siblings_list", cpu);
filep = fopen(path, "r");
if (!filep) {
ERROR("%s: open failed", path);
interval_float = tv_delta.tv_sec + tv_delta.tv_usec/1000000.0;
- snprintf(name, NAME_LEN, "cpu%02d", t->cpu_id);
+ ssnprintf(name, sizeof(name), "cpu%02d", t->cpu_id);
if (!skip_c0)
turbostat_submit(name, "percent", "c0", 100.0 * t->mperf/t->tsc);
if (!(t->flags & CPU_IS_FIRST_THREAD_IN_CORE))
goto done;
- snprintf(name, NAME_LEN, "core%02d", c->core_id);
+ ssnprintf(name, sizeof(name), "core%02d", c->core_id);
if (do_core_cstate & (1 << 3))
turbostat_submit(name, "percent", "c3", 100.0 * c->c3/t->tsc);
if (!(t->flags & CPU_IS_FIRST_CORE_IN_PACKAGE))
goto done;
- snprintf(name, NAME_LEN, "pkg%02d", p->package_id);
+ ssnprintf(name, sizeof(name), "pkg%02d", p->package_id);
if (do_ptm)
turbostat_submit(NULL, "temperature", name, p->pkg_temp_c);
struct stat sb;
if (stat("/dev/cpu/0/msr", &sb)) {
- ERROR("no /dev/cpu/0/msr\n"
- "Try \"# modprobe msr\"");
+ ERROR("no /dev/cpu/0/msr, try \"# modprobe msr\"");
return -ERR_NO_MSR;
}
return 0;
guess:
tcc_activation_temp = TJMAX_DEFAULT;
- WARNING("cpu%d: Guessing tjMax %d C, Please use -T to specify\n",
+ WARNING("cpu%d: Guessing tjMax %d C, Please use -T to specify",
t->cpu_id, tcc_activation_temp);
return 0;
int siblings;
if (cpu_is_not_present(i)) {
- //if (verbose > 1)
- fprintf(stderr, "cpu%d NOT PRESENT\n", i);
+ WARNING("cpu%d NOT PRESENT", i);
continue;
}
cpus[i].core_id = get_core_id(i);