Coder Social home page Coder Social logo

jbgross / libmsr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from llnl/libmsr

0.0 2.0 0.0 6.85 MB

Wrapper library for model-specific registers. APIs cover RAPL, performance counters, clocks and turbo.

Home Page: http://llnl.github.io/libmsr/

License: Other

C++ 21.77% C 76.71% CMake 1.52%

libmsr's Introduction

LIBMSR

Read the Docs

Welcome to Libmsr, a friendly (well, friendlier) interface to many of the model-specific registers in Intel processors. Now with PCI configuration register support for some Intel hardware.

version 0.3.1

Last Update

2 August 2019

Webpages

http://software.llnl.gov/libmsr
https://github.com/llnl/libmsr

Overview

Libmsr provides an interface to accessing the model-specific registers (MSRs) on Intel platforms, which provide privileged functionality for monitoring and controlling various CPU features.

Installation

Installation is simple. You will need CMAKE version 2.8 or higher and GCC. In most cases, the installation is as follows:

$ cmake . -DCMAKE_INSTALL_PREFIX=${HOME}/build/libmsr
$ make
$ make install

The installation depends on a master.h file, which defines the offsets for several MSRs given a particular architecture (e.g., Sandy Bridge, Ivy Bridge, Haswell, etc.). The auto-configuration tool can be forced to use the header file of a specific architecture or can auto-detect the architecture. To specify a particular architecture, run cmake with the option -DLIBMSR_TARGET_ARCH=<ARG> where ARG is in hexadecimal. In the future, we plan to have a set of architecture-specific configuration files that can be pre-loaded to CMake to populate the cache.

Currently supported architectures are Intel Xeon v1-3 (Sandy Bridge, Ivy Bridge, and Haswell server processors). The library technically supports all processors based on these architectures, but some features may be missing from client products. Using the wrong header file is likely to cause problems.

Supported Architectures:

2D (Sandy Bridge)       57 (Knights Landing)
3E (Ivy Bridge)
3F (Haswell)
4F (Broadwell)
55 (Skylake)*

If you are unsure of your architecture number, check the "model" field in lscpu or /proc/cpuinfo (note that it will not be in hexadecimal).

*The Skylake support is currently experimental and requires more testing/validation.

Notes

This software depends on the files /dev/cpu/*/msr being present with R/W permissions. Recent kernels require additional capabilities. We have found it easier to use our own MSR-SAFE kernel module, but running as root (or going through the bother of adding the capabilities to the binaries) is another option.

If you need PCI configuration register (CSR) support in Libmsr, you MUST have CSR-SAFE installed. This code is not currently on Github -- you will need to request it.

Call msr_init() before using any of the APIs.

For sample code, see libmsr_test.c in the test/ directory.

Our most up-to-date documentation for Libmsr can be generated with make doc and make latex_doc for HTML and PDF versions, respectively. There are also some useful PDF files in the documentation/ directory.

If you wish to use Libmsr on LLNL's Cab system, you will need to apply a patch to gain MSR access. At this time, the patch will need to be requested as it is not on Github.

Contact

Barry Rountree, Project Lead, [email protected]
Stephanie Brink, Developer, [email protected]

Please feel free to contact the developers with any questions or feedback.

We are collecting names of those who have previously contributed to libmsr over the years. See the current list in the AUTHORS file. Please contact the developers to have your name added to the list.

Release

libmsr is released under the GPLv2.1 license. For more details, see the LICENSE file.

LLNL-CODE-645430

libmsr's People

Contributors

rountree-alt avatar scott-walker-llnl avatar kshoga1 avatar slabasan avatar rountree avatar kathrynmohror avatar tgamblin avatar tpatki avatar connorimes avatar bronevet avatar mcfadden8 avatar danielecesarini avatar ianlee1521 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.