1 #include <math.h>
2 #include <unistd.h>
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <sys/types.h>
6 #include <sys/stat.h>
7 #include <fcntl.h>
8 #include <sys/timeb.h>
9 #include <sched.h>
10 #include <errno.h>
11
12
main(int argc,char ** argv)13 int main(int argc, char **argv) {
14 int cpu, fd;
15 long long msr;
16 char msr_file_name[64];
17
18 if (argc != 2)
19 return 1;
20
21 errno = 0;
22 cpu = strtol(argv[1], (char **) NULL, 10);
23
24 if (errno)
25 return 1;
26
27 sprintf(msr_file_name, "/dev/cpu/%d/msr", cpu);
28 fd = open(msr_file_name, O_RDONLY);
29
30 if (fd == -1) {
31 perror("Failed to open");
32 return 1;
33 }
34
35 pread(fd, &msr, sizeof(msr), 0x199);
36
37 printf("msr 0x199: 0x%llx\n", msr);
38 return 0;
39 }
40