alistair23-linux/tools/testing/selftests/intel_pstate/msr.c
Prarit Bhargava ed2d26d7cb tools, testing, add test for intel_pstate driver
This test used the cpupower utility to set the cpu frequency from the
maximum turbo value to the minimum supported value in steps of 100 MHz.

The results are displayed in a table which indicate the "Target" state,
or the requested frequency in MHz, the Actual frequency, as read from
/proc/cpuinfo, the difference between the Target and Actual frequencies,
and the value of MSR 0x199 (MSR_IA32_PERF_CTL) which indicates what
pstate the cpu is in, and the value of
/sys/devices/system/cpu/intel_pstate/max_perf_pct X maximum turbo state

Cc: Shuah Khan <shuahkh@osg.samsung.com>
Cc: linux-api@vger.kernel.org
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
2015-11-23 13:30:59 -07:00

40 lines
643 B
C

#include <math.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/timeb.h>
#include <sched.h>
#include <errno.h>
int main(int argc, char **argv) {
int cpu, fd;
long long msr;
char msr_file_name[64];
if (argc != 2)
return 1;
errno = 0;
cpu = strtol(argv[1], (char **) NULL, 10);
if (errno)
return 1;
sprintf(msr_file_name, "/dev/cpu/%d/msr", cpu);
fd = open(msr_file_name, O_RDONLY);
if (fd == -1) {
perror("Failed to open");
return 1;
}
pread(fd, &msr, sizeof(msr), 0x199);
printf("msr 0x199: 0x%llx\n", msr);
return 0;
}