LibMSR ya no se mantiene activamente: LibMSR se ha convertido en Variorum, que se puede encontrar en GitHub: https://github.com/llnl/variorum.
Bienvenido a LibMSR, una interfaz amigable (bueno, más amigable) para muchos de los registros específicos del modelo en los procesadores Intel. Ahora con el soporte de registro de configuración PCI para algún hardware Intel.
Versión 0.3.1
Importante
LibMSR ya no se está desarrollando activamente. Variorum https://variorum.readthedocs.io/ es una evolución y un sucesor de LibMSR. Variorum se puede encontrar en GitHub:
https://github.com/llnl/variorum
24 de marzo de 2020
http://software.llnl.gov/libmsr
https://github.com/llnl/libmsr
LibMSR proporciona una interfaz para acceder a los registros específicos del modelo (MSRS) en las plataformas Intel, que proporcionan una funcionalidad privilegiada para monitorear y controlar varias características de CPU.
La instalación es simple. Necesitará CMake versión 2.8 o superior y GCC. En la mayoría de los casos, la instalación es la siguiente:
$ cmake . -DCMAKE_INSTALL_PREFIX=${HOME}/build/libmsr
$ make
$ make install
La instalación depende de un archivo master.h , que define las compensaciones para varios MSR dada una arquitectura particular (por ejemplo, Sandy Bridge, Ivy Bridge, Haswell, etc.). La herramienta de configuración automática se puede ver a usar el archivo de encabezado de una arquitectura específica o puede detectar automáticamente la arquitectura. Para especificar una arquitectura particular, ejecute cmake con la opción -DLIBMSR_TARGET_ARCH=<ARG> donde ARG está en hexadecimal. En el futuro, planeamos tener un conjunto de archivos de configuración específicos de arquitectura que se puedan precargar a CMake para llenar el caché.
Las arquitecturas compatibles actualmente son Intel Xeon V1-3 (Sandy Bridge, Ivy Bridge y Haswell Server Processors). La biblioteca técnicamente admite todos los procesadores basados en estas arquitecturas, pero pueden faltar algunas características en los productos del cliente. Es probable que el uso del archivo de encabezado incorrecto cause problemas.
Arquitecturas compatibles:
2D (Sandy Bridge) 57 (Knights Landing)
3E (Ivy Bridge)
3F (Haswell)
4F (Broadwell)
55 (Skylake)*
Si no está seguro de su número de arquitectura, verifique el campo "Modelo" en lscpu o /proc/cpuinfo (tenga en cuenta que no será en hexadecimal).
*El soporte de Skylake es actualmente experimental y requiere más pruebas/validación.
Este software depende de los archivos /dev/cpu/*/msr presentes. Los núcleos recientes requieren capacidades adicionales. Hemos encontrado más fácil usar nuestro propio módulo de kernel seguro MSR con permisos R/W, pero ejecutar como root (o pasar por la molestia de agregar las capacidades a los binarios) es otra opción.
Si necesita soporte de registro de configuración PCI (CSR) en libmsr, debe tener instalado CSR-SAFE. Este código no está actualmente en GitHub; deberá solicitarlo.
Llame msr_init() antes de usar cualquiera de las API.
Para el código de muestra, consulte libmsr_test.c en la test/ directorio.
Nuestra documentación más actualizada para LibMSR se puede generar con make doc y make latex_doc para versiones HTML y PDF, respectivamente. También hay algunos archivos PDF útiles en la documentation/ directorio.
Barry Rouncree, Project Lead, [email protected]
Stephanie Brink, desarrolladora, [email protected]
No dude en comunicarse con los desarrolladores con cualquier pregunta o retroalimentación.
Estamos recopilando nombres de aquellos que han contribuido previamente a LibMSR a lo largo de los años. Consulte la lista actual en el archivo de AUTHORS . Póngase en contacto con los desarrolladores para que se agregue su nombre a la lista.
LibMSR se publica bajo la licencia GPLV2.1. Para obtener más detalles, consulte el archivo de licencia.
LLNL-CODE-645430