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