Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

msr(4) [opendarwin man page]

MSR(4)							     Linux Programmer's Manual							    MSR(4)

msr - x86 CPU MSR access device DESCRIPTION
/dev/cpu/CPUNUM/msr provides an interface to read and write the model-specific registers (MSRs) of an x86 CPU. CPUNUM is the number of the CPU to access as listed in /proc/cpuinfo. The register access is done by opening the file and seeking to the MSR number as offset in the file, and then reading or writing in chunks of 8 bytes. An I/O transfer of more than 8 bytes means multiple reads or writes of the same register. This file is protected so that it can be read and written only by the user root, or members of the group root. NOTES
The msr driver is not auto-loaded. On modular kernels you might need to use the following command to load it explicitly before use: $ modprobe msr SEE ALSO
Intel Corporation Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3B Appendix B, for an overview of the Intel CPU MSRs. COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at Linux 2009-03-31 MSR(4)

Check Out this Related Man Page

CPUCONTROL(8)						    BSD System Manager's Manual 					     CPUCONTROL(8)

cpucontrol -- control utility for the cpuctl(4) device SYNOPSIS
cpucontrol [-vh] -m msr device cpucontrol [-vh] -m msr=value device cpucontrol [-vh] -m msr&=mask device cpucontrol [-vh] -m msr|=mask device cpucontrol [-vh] -i level device cpucontrol [-vh] -i level,level_type device cpucontrol [-vh] [-d datadir] -u device DESCRIPTION
The cpucontrol utility can be used to read and write arbitrary machine-specific CPU registers via the cpuctl(4) special device. It can also be used to apply CPU firmware updates. The following options are available: -d datadir Where to look for microcode images. The option can be specified multiple times. -m msr[=value] Show value of the specified MSR. MSR register number should be given as a hexadecimal number. -m msr=value Store the value in the specified MSR register. The value argument can be prefixed with ~ operator. In this case the inverted value of argument will be stored in the register. -m msr&=mask Store the result of bitwise AND operation between mask and the current MSR value in the MSR register. The mask argument can be pre- fixed with ~ operator. In this case the inverted value of mask will be used. -m msr|=mask Store the result of bitwise OR operation between mask and the current MSR value in the MSR register. The mask argument can be pre- fixed with ~ operator. In this case the inverted value of mask will be used. -i level Retrieve CPUID info. Level should be given as a hex number. -i level,level_type Retrieve CPUID info. Level and level_type should be given as hex numbers. -u Apply CPU firmware updates. The cpucontrol utility will walk through the configured data directories and apply all firmware updates available for this CPU. -v Increase the verbosity level. -h Show help message. EXIT STATUS
The cpucontrol utility exits 0 on success, and >0 if an error occurs. EXAMPLES
The command ``cpucontrol -m 0x10 /dev/cpuctl0'' will read the contents of TSC MSR from CPU 0. To set the CPU 0 TSC MSR register value to 0x1 issue ``cpucontrol -m 0x10=0x1 /dev/cpuctl0''. The following command will clear the second bit of TSC register: ``cpucontrol -m 0x10&=~0x02 /dev/cpuctl0''. The following command will set the forth and second bit of TSC register: ``cpucontrol -m 0x10|=0x0a /dev/cpuctl0''. The command ``cpucontrol -i 0x1 /dev/cpuctl1'' will retrieve the CPUID level 0x1 from CPU 1. To perform firmware updates on CPU 0 from images located at /usr/local/share/cpuctl/ use the following command: ``cpucontrol -d /usr/local/share/cpuctl/ -u /dev/cpuctl0'' SEE ALSO
cpuctl(4) HISTORY
The cpucontrol utility first appeared in FreeBSD 7.2. AUTHORS
The cpucontrol utility and this manual page was written by Stanislav Sedov <>. BUGS
Yes, probably, report if any. BSD
June 30, 2009 BSD
Man Page