Libmsr ist nicht mehr aktiv aufrechterhalten - libmsr hat sich zu variorum entwickelt, was auf Github zu finden ist: https://github.com/llnl/variorum.
Willkommen bei Libmsr, einer freundlichen (na ja, freundlicheren) Schnittstelle zu vielen modellspezifischen Registern in Intel-Prozessoren. Mit dem PCI -Konfigurationsregister unterstützen Sie nun eine Intel -Hardware.
Version 0.3.1
Wichtig
LIBMSR wird nicht mehr aktiv entwickelt. Variorum https://variorum.readthedocs.io/ ist eine Entwicklung von und ein Nachfolger von libmsr. Variorum finden Sie auf GitHub:
https://github.com/llnl/variorum
24. März 2020
http://software.llnl.gov/libmsr
https://github.com/llnl/libmsr
LIBMSR bietet eine Schnittstelle zum Zugriff auf die modellspezifischen Register (MSRS) auf Intel-Plattformen, die privilegierte Funktionen für die Überwachung und Steuerung verschiedener CPU-Funktionen bieten.
Die Installation ist einfach. Sie benötigen CMake Version 2.8 oder höher und GCC. In den meisten Fällen lautet die Installation wie folgt:
$ cmake . -DCMAKE_INSTALL_PREFIX=${HOME}/build/libmsr
$ make
$ make install
Die Installation hängt von einer master.h -Datei ab, die die Offsets für mehrere MSRs mit einer bestimmten Architektur definiert (z. B. Sandy Bridge, Ivy Bridge, Haswell usw.). Das Auto-Konfigurations-Tool kann gezwungen werden, die Header-Datei einer bestimmten Architektur zu verwenden oder die Architektur automatisch zu erkennen. Um eine bestimmte Architektur anzugeben, führen Sie cmake mit der Option -DLIBMSR_TARGET_ARCH=<ARG> aus, wobei ARG in hexadezimal ist. In Zukunft planen wir eine Reihe von architekturspezifischen Konfigurationsdateien, die an CMAKE vorbelastet werden können, um den Cache zu füllen.
Derzeit unterstützte Architekturen in Intel Xeon V1-3 (Sandy Bridge, Ivy Bridge und Haswell Server-Prozessoren). Die Bibliothek unterstützt technisch alle Prozessoren basierend auf diesen Architekturen, aber einige Funktionen fehlen möglicherweise bei Kundenprodukten. Die Verwendung der falschen Header -Datei verursacht wahrscheinlich Probleme.
Unterstützte Architekturen:
2D (Sandy Bridge) 57 (Knights Landing)
3E (Ivy Bridge)
3F (Haswell)
4F (Broadwell)
55 (Skylake)*
Wenn Sie sich Ihrer Architekturnummer nicht sicher sind, überprüfen Sie das Feld "Modell" in lscpu oder /proc/cpuinfo (beachten Sie, dass es nicht in Hexadezimal ist).
*Die Skylake -Unterstützung ist derzeit experimentell und erfordert mehr Test/Validierung.
Diese Software hängt von der vorhandenen Dateien /dev/cpu/*/msr ab. Neuere Kerne erfordern zusätzliche Funktionen. Wir haben es einfacher gefunden, unser eigenes MSR-sicherer Kernelmodul mit R/W-Berechtigungen zu verwenden, aber als Root auszuführen (oder die Mühe zu durchlaufen, die Funktionen zu den Binärdateien hinzuzufügen) ist eine weitere Option.
Wenn Sie in LIBMSR PCI-Konfigurationsregister (CSR) unterstützen, müssen Sie CSR-Safe installiert haben. Dieser Code befindet sich derzeit nicht auf GitHub - Sie müssen ihn anfordern.
Rufen Sie msr_init() auf, bevor Sie eine der APIs verwenden.
Für Beispielcode siehe libmsr_test.c im test/ Verzeichnis.
Unsere aktuellste Dokumentation für libmsr kann mit make doc generiert werden und make latex_doc . Es gibt auch einige nützliche PDF -Dateien im documentation/ Verzeichnis.
Barry Rountree, Projektleiter, [email protected]
Stephanie Brink, Entwickler, [email protected]
Bitte kontaktieren Sie die Entwickler mit Fragen oder Feedback.
Wir sammeln Namen derer, die zuvor im Laufe der Jahre zu libmsr beigetragen haben. Siehe die aktuelle Liste in der AUTHORS -Datei. Bitte wenden Sie sich an die Entwickler, um Ihren Namen zur Liste hinzuzufügen.
LIBMSR wird unter der GPLV2.1 -Lizenz veröffentlicht. Weitere Informationen finden Sie in der Lizenzdatei.
LLNL-CODE-645430