Este pacote de software fornece suporte básico para Intel(R) Resource Director Technology (Intel(R) RDT) e Intel(R) I/O Resource Director Technology (Intel(R) I/O RDT), incluindo: Cache Monitoring Technology (CMT) , Monitoramento de largura de banda de memória (MBM), Tecnologia de alocação de cache (CAT), Priorização de código e dados (CDP) e Alocação de largura de banda de memória (MBA).
Em princípio, o software programa as tecnologias por meio de Registros Específicos de Modelo (MSR) com base em thread de hardware. O acesso ao MSR é organizado através de um driver de sistema operacional padrão: msr no Linux e cpuctl no FreeBSD. Nas implementações arquitetônicas mais comuns, a presença das tecnologias é detectada através da instrução CPUID.
Em um número limitado de casos especiais em que o CAT não é suportado arquitetonicamente em um SKU específico (mas existe uma implementação não arquitetônica (específica do modelo)), ele pode ser detectado por meio de string de marca. Essa string de marca é lida do CPUID e comparada a uma tabela de SKUs com suporte conhecido. Se necessário, uma verificação final é sondar os MSRs específicos para descobrir capacidades de hardware; no entanto, é recomendado que a enumeração CPUID seja usada sempre que possível.
A partir da versão de software v1.0.0, a biblioteca adiciona a opção de usar Intel(R) RDT por meio de interfaces de sistema operacional disponíveis (perf e resctrl no Linux). A biblioteca detecta a presença destas interfaces e permite selecionar a preferida através de uma opção de configuração. Como resultado, ferramentas existentes como 'pqos' ou 'rdtset' também podem ser usadas para gerenciar o Intel(R) RDT de maneira compatível com o sistema operacional. A partir da versão v4.3.0, a interface do sistema operacional tornou-se a opção padrão. Os wrappers da ferramenta 'pqos' foram adicionados para ajudar na seleção da interface. 'pqos-os' e 'pqos-msr' para operações de interface OS e MSR, respectivamente.
A opção de tempo de compilação da API PID foi removida e as APIs estão sempre disponíveis. Observe que a operação adequada dessas APIs depende da disponibilidade e da seleção da interface do sistema operacional.
Este pacote de software é mantido, atualizado e desenvolvido em https://github.com/intel/intel-cmt-cat
https://github.com/intel/intel-cmt-cat/wiki fornece perguntas frequentes, exemplos de uso e links úteis.
Consulte o arquivo INSTALL para obter instruções de instalação do pacote.
Diretório "lib":
Inclui arquivos de biblioteca de software que fornecem APIs para detecção, monitoramento e alocação de tecnologia. Consulte a biblioteca README para obter mais detalhes (lib/README).
Diretório “lib/perl”:
Inclui wrapper Perl da biblioteca PQoS. Por favor consulte o README da interface para mais detalhes (lib/perl/README).
Diretório “lib/python”:
Inclui o wrapper Python 3.x da biblioteca PQoS. Consulte o README da interface para obter mais detalhes (lib/python/README.md).
Diretório "pqos":
Inclui arquivos de origem para um utilitário que fornece acesso de linha de comando ao Intel(R) RDT. O utilitário se conecta à biblioteca e programa as tecnologias por meio de suas APIs. Consulte o utilitário README para obter mais detalhes "pqos/README". A página de manual do utilitário "pqos" também fornece informações sobre o uso da ferramenta: $ man pqos
Diretório "rdtset":
Inclui arquivos de origem para um utilitário que fornece funcionalidade semelhante a "conjunto de tarefas" para configuração RDT. O utilitário se conecta à biblioteca e programa as tecnologias por meio de suas APIs. Consulte o utilitário README para obter mais detalhes "rdtset/README". A página de manual do utilitário "rdtset" também fornece informações sobre o uso da ferramenta: $ man rdtset
Diretório "appqos":
Inclui arquivos de origem para um aplicativo que permite agrupar aplicativos em pools baseados em prioridade. Cada pool recebe uma configuração Intel(R) RDT e Intel(R) SST que pode ser definida na inicialização ou em tempo de execução por meio de uma API REST. Consulte o README do aplicativo para obter mais detalhes "appqos/README".
Diretório "appqos_client":
Inclui arquivos de origem para um aplicativo Web cliente App QoS. O aplicativo fornece uma interface de usuário simples para configurar remotamente Intel(R) RDT e Intel(R) SST em sistemas onde o App QoS está em execução. Consulte o README do aplicativo para obter mais detalhes "appqos_client/README".
diretório "exemplos":
Inclui exemplos C e Perl de uso do Intel(R) RDT por meio das APIs da biblioteca. Consulte o arquivo README para obter mais detalhes "exemplos/README".
Diretório "snmp":
Inclui o subagente Net-SNMP AgentX escrito em Perl para demonstrar o uso da API wrapper Perl da biblioteca PQoS. Consulte o arquivo README para obter mais detalhes "snmp/README".
Diretório "ferramentas":
Inclui ferramenta membw para sobrecarregar a largura de banda da memória com diferentes operações.
Diretório "srpm":
Inclui arquivos *.src *.rpm e *.spec para o pacote de software.
Arquivo "ChangeLog":
Breve descrição das alterações entre versões.
Arquivo "INSTALAR":
Instruções de instalação.
Arquivo "LICENÇA":
Licença do pacote.
Diretório "teste de unidade":
Testes unitários
Os produtos suportados podem ser encontrados no Adendo A da especificação de arquitetura da Intel® Resource Director Technology (Intel® RDT): https://www.intel.com/content/www/us/en/content-details/789566/intel-resource -director-technology-intel-rdt-architecture-specification.html
O Adendo B contém uma lista de processadores com recursos Intel® RDT específicos do modelo.
Nota: A detecção de recursos específicos do modelo requer que a variável de ambiente RDT_PROBE_MSR
seja definida ao usar a biblioteca e os utilitários. Esses recursos estão disponíveis apenas ao usar a interface MSR. Consulte a seção "Interfaces" abaixo para obter mais informações. Veja o wiki para exemplos de uso.
Para obter detalhes adicionais do Intel(R) RDT, consulte os Manuais de desenvolvimento de software da arquitetura Intel(R) disponíveis em: https://www.intel.com/content/www/us/en/develop/download/intel-64-and -ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html Informações específicas podem ser encontradas no volume 3a, Capítulos 17.18 e 17.19.
Linux é o principal sistema operacional suportado no momento. Existe uma versão FreeBSD do software, mas devido ao escopo de validação limitado, é bastante experimental neste estágio. Embora a maioria dos kernels Linux modernos inclua suporte para Intel(R) RDT, o pacote de software Intel(R) RDT é anterior a essas extensões e pode operar com e sem suporte de kernel. O software Intel(R) RDT pode detectar e aproveitar essas extensões de kernel quando disponíveis para adicionar funcionalidade, mas também é compatível com kernels legados.
O suporte do kernel Linux para Intel(R) RDT foi originalmente introduzido com extensões de chamada de sistema Linux perf para CMT e MBM. Mais recentemente, a interface Resctrl adicionou suporte para CAT, CDP e MBA. Em kernels Linux modernos, é aconselhável usar a interface kernel/SO quando disponível. Detalhes sobre essas interfaces podem ser encontrados em resctrl_ui.txt. Este pacote de software, Intel(R) RDT, continua funcionando perfeitamente em todas as versões do kernel Linux.
A biblioteca de software e utilitários Intel(R) RDT oferecem duas interfaces para programar tecnologias Intel(R) RDT, estas são as interfaces MSR e OS.
A interface MSR é utilizada para configurar a plataforma programando diretamente o hardware (MSR's). Esta é a interface legada e não requer suporte de kernel para Intel(R) RDT, mas está limitada ao monitoramento e gerenciamento de recursos por núcleo.
A interface do sistema operacional foi posteriormente adicionada ao pacote e, quando selecionada, a biblioteca aproveitará as extensões do kernel Linux para programar essas tecnologias. Isso permite monitorar e gerenciar recursos por núcleo/processo e deve ser usado quando disponível.
Consulte as tabelas abaixo para obter mais informações sobre quando o suporte ao recurso Intel(R) RDT (MSR e OS) foi adicionado ao pacote.
Versão Intel(R) RDT | Recurso RDT ativado | Versão do kernel necessária |
---|---|---|
0.1.3 | L3 CAT, CMT, MBM | Qualquer |
0.1.4 | CDP L3 | Qualquer |
0.1.5 | L2 GATO | Qualquer |
1.2.0 | MBA | Qualquer |
2.0.0 | CDP L2 | Qualquer |
5.0.0 | RDT de E/S | Qualquer |
Versão Intel(R) RDT | Recurso RDT ativado | Versão do kernel necessária | Interface recomendada |
---|---|---|---|
0.1.4 | CMT (Perf) | 4.1 | MSR (1) |
1.0.0 | MBM (desempenho) | 4.7 | MSR (1) |
1.1.0 | L3 CAT, L3 CDP, L2 CAT (Resctrl) | 4.10 | SO apenas para alocação (com exceção do MBA) MSR para alocação + monitoramento (2) |
1.2.0 | MBA (Resctrl) | 4.12 | SO apenas para alocação MSR para alocação + monitoramento (2) |
2.0.0 | CMT, MBM (Resctrl) | 4.14 | SO |
2.0.0 | CDP L2 | 4.16 | SO |
3.0.0 | MBA CTRL (Resctrl) | 4.18 | SO |
Referências:
As únicas dependências do Intel(R) RDT são o acesso às bibliotecas C e pthreads e:
Ative o suporte Intel(R) RDT em:
Nota: Nenhuma opção de configuração do kernel é necessária antes da v4.10.
Resumindo, o uso de software Intel(R) RDT ou PCM junto com estruturas Linux perf e cgroup não é permitido no momento.
Por mais decepcionante que seja, o uso do Linux perf para CMT e MBM e Intel(R) RDT para CAT e CDP não é permitido. Isso ocorre porque o desempenho do Linux substitui a configuração CAT existente durante suas operações.
Existem várias opções para escolher para usar o CAT:
Tabela 4. Matriz de interoperabilidade de software
Intel® RDT | PCM | Desempenho do Linux | Grupo Linux | Restringir Linux | |
---|---|---|---|---|---|
Intel® RDT | Sim(1) | Sim(2) | Sim(5) | Não | Sim(5) |
PCM | Sim(2) | Sim | Não | Não | Não |
Desempenho do Linux | Sim(5) | Não | Sim | Sim(3) | Sim |
Grupo Linux | Não | Não | Sim | Sim(3) | Não |
Restringir Linux (4) | Sim(5) | Não | Sim | Não | Sim |
Referências:
O monitoramento de pqos do Intel(R) RDT pode detectar outros processos de monitoramento de pqos no sistema. O rdtset da Intel(R) RDT detecta outros processos iniciados com o rdtset e não usará seus recursos CAT/CDP.
pqos do Intel(R) RDT pode detectar que o PCM monitora núcleos e não tentará sequestrar os núcleos, a menos que seja forçado. No entanto, se o monitoramento do pqos for iniciado primeiro e depois o PCM for iniciado, o último irá sequestrar a infraestrutura de monitoramento do pqos para seu uso.
Patch do kernel cgroup do Linux https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
Kernel Linux versão 4.10 e mais recente. Um wiki para Intel resctrl está disponível em: https://github.com/intel/intel-cmt-cat/wiki/resctrl
Somente com kernel Linux versão 4.10 (e mais recente), Intel(R) RDT versão 1.0.0 (e mais recente) com interface de sistema operacional selecionada Consulte a opção '-I' em 'man pqos' ou 'pqos-os'.
PCM está disponível em: https://github.com/opcm/pcm
Tabela 5. Status de ativação do software Intel(R) RDT.
Essencial | Tarefa | CMT | MBM | L3 GATO | CDP L3 | L2 GATO | MBA | |
---|---|---|---|---|---|---|---|---|
Intel® RDT | Sim | Sim(7) | Sim | Sim | Sim | Sim | Sim | Sim |
Desempenho do Linux | Sim(6) | Sim | Sim(1) | Sim(2) | Não(3) | Não(3) | Não(3) | Não |
Grupo Linux | Não | Sim | Não | Não | Sim(4) | Não | Não | Não |
Restringir Linux (5) | Sim | Sim | Sim(8) | Sim(8) | Sim | Sim | Sim | Sim(9) |
Lenda:
Referências:
ESTE SOFTWARE É FORNECIDO PELA INTEL "COMO ESTÁ". NENHUMA LICENÇA, EXPRESSA OU IMPLÍCITA, POR ESTOPPEL OU DE OUTRA FORMA, PARA QUAISQUER DIREITOS DE PROPRIEDADE INTELECTUAL É CONCEDIDA ATRAVÉS DO USO. EXCETO CONFORME DISPOSTO NOS TERMOS E CONDIÇÕES DE VENDA DA INTEL, A INTEL NÃO ASSUME QUALQUER RESPONSABILIDADE E SE ISENTA DE QUALQUER GARANTIA EXPRESSA OU IMPLÍCITA, RELACIONADA À VENDA E/OU USO DE PRODUTOS INTEL, INCLUINDO RESPONSABILIDADE OU GARANTIAS RELACIONADAS À ADEQUAÇÃO A UM DETERMINADO FIM, COMERCIALIZAÇÃO OU VIOLAÇÃO DE QUALQUER PATENTE, DIREITO AUTORAL OU OUTRO DIREITO DE PROPRIEDADE INTELECTUAL.