O LIBMSR não é mais mantido ativamente - o LIBMSR evoluiu para o Variorum, que pode ser encontrado no Github: https://github.com/llnl/variorum.
Bem-vindo ao LIBMSR, uma interface amigável (bem, mais amigável) para muitos dos registros específicos do modelo nos processadores Intel. Agora, com o suporte ao registro de configuração do PCI para algum hardware Intel.
Versão 0.3.1
Importante
Libmsr não está mais sendo desenvolvido ativamente. Variorum https://variorum.readthedocs.io/ é uma evolução e um sucessor para libmsr. O Variorum pode ser encontrado no Github:
https://github.com/llnl/variorum
24 de março de 2020
http://software.llnl.gov/libmsr
https://github.com/llnl/libmsr
O LIBMSR fornece uma interface para acessar os registros específicos do modelo (MSRS) nas plataformas Intel, que fornecem funcionalidade privilegiada para monitorar e controlar vários recursos da CPU.
A instalação é simples. Você precisará de CMake versão 2.8 ou superior e GCC. Na maioria dos casos, a instalação é a seguinte:
$ cmake . -DCMAKE_INSTALL_PREFIX=${HOME}/build/libmsr
$ make
$ make install
A instalação depende de um arquivo master.h , que define as compensações para vários MSRs, dada uma arquitetura específica (por exemplo, Sandy Bridge, Ivy Bridge, Haswell, etc.). A ferramenta de configuração automática pode ser forçada a usar o arquivo de cabeçalho de uma arquitetura específica ou pode detectar automaticamente a arquitetura. Para especificar uma arquitetura específica, execute cmake com a opção -DLIBMSR_TARGET_ARCH=<ARG> onde ARG está no hexadecimal. No futuro, planejamos ter um conjunto de arquivos de configuração específicos da arquitetura que possam ser pré-carregados para o CMake para preencher o cache.
Atualmente, as arquiteturas suportadas são os processadores Intel Xeon V1-3 (Sandy Bridge, Ivy Bridge e Haswell Server). A biblioteca apoia tecnicamente todos os processadores com base nessas arquiteturas, mas alguns recursos podem estar ausentes nos produtos clientes. O uso do arquivo de cabeçalho errado provavelmente causará problemas.
Arquiteturas suportadas:
2D (Sandy Bridge) 57 (Knights Landing)
3E (Ivy Bridge)
3F (Haswell)
4F (Broadwell)
55 (Skylake)*
Se você não tiver certeza do seu número de arquitetura, verifique o campo "Modelo" em lscpu ou /proc/cpuinfo (observe que ele não estará no hexadecimal).
*O suporte Skylake é atualmente experimental e requer mais testes/validação.
Este software depende dos arquivos /dev/cpu/*/msr estarem presentes. Os kernels recentes exigem recursos adicionais. Achei mais fácil usar nosso próprio módulo de kernel segura por MSR com permissões R/W, mas executando como root (ou passar pelo incômodo de adicionar os recursos aos binários) é outra opção.
Se você precisar de suporte ao Registro de Configuração do PCI (RSE) no LIBMSR, você deve instalar o seguro de CSR. Este código não está atualmente no GitHub - você precisará solicitá -lo.
Ligue para msr_init() antes de usar qualquer uma das APIs.
Para código de amostra, consulte libmsr_test.c no diretório test/ .
Nossa documentação mais atualizada para o libmsr pode ser gerada com make doc e make latex_doc para versões HTML e PDF, respectivamente. Existem também alguns arquivos PDF úteis na documentation/ diretório.
Barry Rountree, líder do projeto, [email protected]
Stephanie Brink, desenvolvedor, [email protected]
Sinta -se à vontade para entrar em contato com os desenvolvedores com qualquer dúvida ou feedback.
Estamos coletando nomes daqueles que já contribuíram para o LIBMSR ao longo dos anos. Consulte a lista atual no arquivo AUTHORS . Entre em contato com os desenvolvedores para adicionar seu nome à lista.
O LIBMSR é liberado sob a licença GPLV2.1. Para mais detalhes, consulte o arquivo de licença.
LLNL-CODE-645430