LIBMSR больше не поддерживается - LIBMSR превратился в Variorum, который можно найти на GitHub: https://github.com/llnl/variorum.
Добро пожаловать в Libmsr, дружелюбный (ну, дружелюбный) интерфейс со многими из специфических для модели регистров в процессорах Intel. Теперь с поддержкой конфигурации PCI для некоторого оборудования Intel.
Версия 0.3.1
Важный
LIBMSR больше не развивается активно. Variorum https://variorum.readthedocs.io/ является эволюцией и преемником Libmsr. Variorum можно найти на GitHub:
https://github.com/llnl/variorum
24 марта 2020 года
http://software.llnl.gov/libmsr
https://github.com/llnl/libmsr
LIBMSR предоставляет интерфейс для доступа к реестрам модели (MSR) на платформах Intel, которые обеспечивают привилегированные функциональные возможности для мониторинга и управления различными функциями процессора.
Установка проста. Вам понадобится CMAKE версия 2.8 или выше и GCC. В большинстве случаев установка следующая:
$ cmake . -DCMAKE_INSTALL_PREFIX=${HOME}/build/libmsr
$ make
$ make install
Установка зависит от файла master.h , который определяет смещения для нескольких MSR, полученных конкретной архитектурой (например, Сэнди -мост, Мвис Айви, Хасвелл и т. Д.). Инструмент автоматической конфигурации может быть вынужден использовать файл заголовка конкретной архитектуры или может автоматически определять архитектуру. Чтобы указать конкретную архитектуру, запустите cmake с помощью опции -DLIBMSR_TARGET_ARCH=<ARG> , где ARG находится в шестнадцатеричной. В будущем мы планируем иметь набор файлов конфигурации, специфичных для архитектуры, которые могут быть предварительно загружены в Cmake для заполнения кэша.
В настоящее время поддерживаемыми архитектурами являются Intel Xeon V1-3 (Сэнди-мост, Айви Бридж и Haswell Server процессоры). Библиотека технически поддерживает все процессоры на основе этих архитектур, но некоторые функции могут отсутствовать в клиентских продуктах. Использование неправильного файла заголовка может вызвать проблемы.
Поддерживаемые архитектуры:
2D (Sandy Bridge) 57 (Knights Landing)
3E (Ivy Bridge)
3F (Haswell)
4F (Broadwell)
55 (Skylake)*
Если вы не уверены в своем номере архитектуры, проверьте поле «Модель» в lscpu или /proc/cpuinfo (обратите внимание, что оно не будет в шестнадцатеричной).
*Поддержка Skylake в настоящее время экспериментальна и требует большей тестирования/валидации.
Это программное обеспечение зависит от наличия файлов /dev/cpu/*/msr . Недавние ядра требуют дополнительных возможностей. Нам было проще использовать наш собственный модуль ядра MSR-безопасного ядра с разрешениями R/W, но работать в качестве корня (или просмотреть беспокойство добавления возможностей в двоичные файлы) является еще одним вариантом.
Если вам нужна поддержка конфигурации PCI (CSR) в LIBMSR, вы должны установить CSR-SAFE. Этот код в настоящее время не находится на Github - вам нужно будет его запросить.
Вызовите msr_init() перед использованием любого из API.
Для примера кода см. libmsr_test.c в test/ каталоге.
Наша самая современная документация для LIBMSR может быть сгенерирована с помощью make doc и make latex_doc для версий HTML и PDF соответственно. Есть также несколько полезных файлов PDF в documentation/ каталоге.
Barry Rountree, Head Project, [email protected]
Стефани Бринк, разработчик, [email protected]
Пожалуйста, не стесняйтесь обращаться к разработчикам с любыми вопросами или обратной связью.
Мы собираем имена тех, кто ранее участвовал в LIBMSR на протяжении многих лет. Смотрите текущий список в файле AUTHORS . Пожалуйста, свяжитесь с разработчиками, чтобы добавить ваше имя в список.
LIBMSR выпускается по лицензии GPLV2.1. Для получения более подробной информации см. Файл лицензии.
LLNL-CODE-645430