Ce progiciel fournit une prise en charge de base de la technologie Intel(R) Resource Director (Intel(R) RDT) et de la technologie Intel(R) I/O Resource Director (Intel(R) I/O RDT), notamment : Technologie de surveillance du cache (CMT) , surveillance de la bande passante mémoire (MBM), technologie d'allocation de cache (CAT), priorisation du code et des données (CDP) et allocation de bande passante mémoire (MBA).
En principe, le logiciel programme les technologies via des registres spécifiques au modèle (MSR) sur la base d'un thread matériel. L'accès MSR est organisé via un pilote de système d'exploitation standard : msr sous Linux et cpuctl sous FreeBSD. Dans les implémentations architecturales les plus courantes, la présence des technologies est détectée via l'instruction CPUID.
Dans un nombre limité de cas particuliers où CAT n'est pas pris en charge architecturalement sur un SKU particulier (mais qu'il existe une implémentation non architecturale (spécifique au modèle)), il peut être détecté via une chaîne de marque. Cette chaîne de marque est lue à partir du CPUID et comparée à un tableau de SKU connus et pris en charge. Si nécessaire, une vérification finale consiste à sonder les MSR spécifiques pour découvrir les capacités matérielles. Cependant, il est recommandé d'utiliser l'énumération CPUID dans la mesure du possible.
À partir de la version du logiciel v1.0.0, la bibliothèque ajoute la possibilité d'utiliser Intel(R) RDT via les interfaces du système d'exploitation disponibles (perf et resctrl sous Linux). La bibliothèque détecte la présence de ces interfaces et permet de sélectionner celle préférée via une option de configuration. En conséquence, les outils existants tels que « pqos » ou « rdtset » peuvent également être utilisés pour gérer Intel(R) RDT d'une manière compatible avec le système d'exploitation. Depuis la version v4.3.0, l'interface du système d'exploitation est devenue l'option par défaut. Les wrappers d'outils 'pqos' ont été ajoutés pour faciliter la sélection de l'interface. 'pqos-os' et 'pqos-msr' pour les opérations d'interface OS et MSR respectivement.
L'option de temps de compilation de l'API PID a été supprimée et les API sont toujours disponibles. Notez que le bon fonctionnement de ces API dépend de la disponibilité et de la sélection de l'interface du système d'exploitation.
Ce progiciel est maintenu, mis à jour et développé sur https://github.com/intel/intel-cmt-cat
https://github.com/intel/intel-cmt-cat/wiki fournit une FAQ, des exemples d'utilisation et des liens utiles.
Veuillez vous référer au fichier INSTALL pour les instructions d'installation du package.
Répertoire "lib":
Comprend des fichiers de bibliothèque de logiciels fournissant des API pour la détection, la surveillance et l'allocation de technologies. Veuillez vous référer à la bibliothèque README pour plus de détails (lib/README).
Répertoire « lib/perl » :
Inclut le wrapper Perl de la bibliothèque PQoS. Veuillez vous référer à l'interface README pour plus de détails (lib/perl/README).
Répertoire « lib/python » :
Inclut le wrapper Python 3.x de la bibliothèque PQoS. Veuillez vous référer à l'interface README pour plus de détails (lib/python/README.md).
Répertoire "pqos":
Inclut les fichiers source d'un utilitaire qui fournit un accès en ligne de commande à Intel(R) RDT. L'utilitaire se connecte à la bibliothèque et programme les technologies via ses API. Veuillez vous référer à l'utilitaire README pour plus de détails "pqos/README". La page de manuel de l'utilitaire "pqos" fournit également des informations sur l'utilisation de l'outil : $ man pqos
Répertoire "rdtset":
Inclut les fichiers source d'un utilitaire qui fournit une fonctionnalité de type « ensemble de tâches » pour la configuration RDT. L'utilitaire se connecte à la bibliothèque et programme les technologies via ses API. Veuillez vous référer à l'utilitaire README pour plus de détails "rdtset/README". La page de manuel de l'utilitaire "rdtset" fournit également des informations sur l'utilisation de l'outil : $ man rdtset
Répertoire "appqos":
Inclut les fichiers sources d'une application qui permet de regrouper les applications dans des pools prioritaires. Chaque pool se voit attribuer une configuration Intel(R) RDT et Intel(R) SST qui peut être définie au démarrage ou au moment de l'exécution via une API REST. Veuillez vous référer à l'application README pour plus de détails "appqos/README".
Répertoire « appqos_client » :
Inclut les fichiers sources pour une application Web client App QoS. L'application fournit une interface utilisateur simple pour configurer à distance Intel(R) RDT et Intel(R) SST sur les systèmes sur lesquels App QoS est exécuté. Veuillez vous référer au README de l'application pour plus de détails "appqos_client/README".
Répertoire "exemples":
Comprend des exemples C et Perl d'utilisation d'Intel(R) RDT via les API de la bibliothèque. Veuillez vous référer au fichier README pour plus de détails "exemples/README".
Répertoire "snmp":
Inclut le sous-agent Net-SNMP AgentX écrit en Perl pour démontrer l'utilisation de l'API du wrapper Perl de la bibliothèque PQoS. Veuillez vous référer au fichier README pour plus de détails "snmp/README".
Répertoire "outils":
Comprend un outil membre pour stresser la bande passante mémoire avec différentes opérations.
Répertoire "srpm":
Comprend les fichiers *.src *.rpm et *.spec pour le progiciel.
Fichier "ChangeLog":
Brève description des changements entre les versions.
Fichier "INSTALLER":
Instructions d'installation.
Fichier "LICENCE":
Licence du package.
Répertoire "test unitaire":
Tests unitaires
Les produits pris en charge sont disponibles dans l'Addendum A de la spécification d'architecture Intel® Resource Director Technology (Intel® RDT) : https://www.intel.com/content/www/us/en/content-details/789566/intel-resource -directeur-technologie-intel-rdt-architecture-spécification.html
L'Addendum B contient une liste de processeurs dotés de fonctionnalités Intel® RDT spécifiques au modèle.
Remarque : La détection des fonctionnalités spécifiques au modèle nécessite que la variable d'environnement RDT_PROBE_MSR
soit définie lors de l'utilisation de la bibliothèque et des utilitaires. Ces fonctionnalités ne sont disponibles que lors de l'utilisation de l'interface MSR. Voir la section « Interfaces » ci-dessous pour plus d'informations. Voir le wiki pour des exemples d'utilisation.
Pour plus de détails sur Intel(R) RDT, veuillez vous référer aux manuels de développement de logiciels d'architecture Intel(R) disponibles à l'adresse : 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 Des informations spécifiques peuvent être trouvées dans le volume 3a, Chapitres 17.18 et 17.19.
Linux est actuellement le principal système d'exploitation pris en charge. Il existe un portage FreeBSD du logiciel mais en raison de la portée limitée de la validation, il est plutôt expérimental à ce stade. Bien que la plupart des noyaux Linux modernes incluent la prise en charge d'Intel(R) RDT, le progiciel Intel(R) RDT est antérieur à ces extensions et peut fonctionner avec et sans la prise en charge du noyau. Le logiciel Intel(R) RDT peut détecter et exploiter ces extensions de noyau lorsqu'elles sont disponibles pour ajouter des fonctionnalités, mais il est également compatible avec les noyaux existants.
La prise en charge du noyau Linux pour Intel(R) RDT a été initialement introduite avec les extensions d'appel système Linux perf pour CMT et MBM. Plus récemment, l'interface Resctrl a ajouté la prise en charge de CAT, CDP et MBA. Sur les noyaux Linux modernes, il est conseillé d'utiliser l'interface noyau/OS lorsqu'elle est disponible. Des détails sur ces interfaces peuvent être trouvés dans resctrl_ui.txt. Ce progiciel, Intel(R) RDT, continue de fonctionner de manière transparente dans toutes les versions du noyau Linux.
La bibliothèque logicielle et les utilitaires Intel(R) RDT offrent deux interfaces pour programmer les technologies Intel(R) RDT, ce sont les interfaces MSR et OS.
L'interface MSR permet de configurer la plateforme en programmant directement le matériel (MSR). Il s'agit de l'interface héritée qui ne nécessite aucune prise en charge du noyau pour Intel(R) RDT, mais se limite à la surveillance et à la gestion des ressources par cœur.
L'interface du système d'exploitation a ensuite été ajoutée au package et, une fois sélectionnée, la bibliothèque exploitera les extensions du noyau Linux pour programmer ces technologies. Cela permet de surveiller et de gérer les ressources par cœur/processus et doit être utilisé lorsqu'il est disponible.
Veuillez consulter les tableaux ci-dessous pour plus d'informations sur le moment où la prise en charge de la fonctionnalité Intel(R) RDT (MSR et OS) a été ajoutée au package.
Version Intel(R)RDT | Fonction RDT activée | Version du noyau requise |
---|---|---|
0.1.3 | L3 CAT, CMT, MBM | N'importe lequel |
0.1.4 | CDP L3 | N'importe lequel |
0.1.5 | CHAT L2 | N'importe lequel |
1.2.0 | MBA | N'importe lequel |
2.0.0 | CDP L2 | N'importe lequel |
5.0.0 | RDT E/S | N'importe lequel |
Version Intel(R)RDT | Fonction RDT activée | Version du noyau requise | Interface recommandée |
---|---|---|---|
0.1.4 | CMT (Perf) | 4.1 | MSR (1) |
1.0.0 | MBM (Perf) | 4.7 | MSR (1) |
1.1.0 | L3 CAT, L3 CDP, L2 CAT (Resctrl) | 4.10 | OS pour l'allocation uniquement (à l'exception du MBA) MSR pour l'allocation + surveillance (2) |
1.2.0 | MBA (Resctrl) | 4.12 | OS pour allocation uniquement MSR pour allocation + surveillance (2) |
2.0.0 | CMT, MBM (Resctrl) | 4.14 | Système d'exploitation |
2.0.0 | CDP L2 | 4.16 | Système d'exploitation |
3.0.0 | MBA CTRL (Resctrl) | 4.18 | Système d'exploitation |
Références :
Les seules dépendances d'Intel(R) RDT sont l'accès aux bibliothèques C et pthreads et :
Activez la prise en charge d'Intel(R) RDT dans :
Remarque : Aucune option de configuration du noyau n'est requise avant la version 4.10.
En bref, l'utilisation des logiciels Intel(R) RDT ou PCM avec les frameworks Linux perf et cgroup n'est pas autorisée pour le moment.
Aussi décevant soit-il, l'utilisation de Linux perf pour CMT et MBM et d'Intel(R) RDT pour CAT et CDP n'est pas autorisée. En effet, les performances Linux remplacent la configuration CAT existante lors de ses opérations.
Vous avez le choix entre plusieurs options pour utiliser CAT :
Tableau 4. Matrice d'interopérabilité logicielle
Intel(R) RDT | PCM | Performances Linux | Groupe de contrôle Linux | Linux réctrl | |
---|---|---|---|---|---|
Intel(R) RDT | Oui(1) | Oui(2) | Oui(5) | Non | Oui(5) |
PCM | Oui(2) | Oui | Non | Non | Non |
Performances Linux | Oui(5) | Non | Oui | Oui(3) | Oui |
Groupe de contrôle Linux | Non | Non | Oui | Oui(3) | Non |
Linux resctrl (4) | Oui(5) | Non | Oui | Non | Oui |
Références :
La surveillance pqos d'Intel(R) RDT peut détecter d'autres processus de surveillance pqos dans le système. rdtset d'Intel(R) RDT détecte les autres processus démarrés avec rdtset et n'utilisera pas leurs ressources CAT/CDP.
pqos d'Intel(R) RDT peut détecter que PCM surveille les cœurs et il ne tentera pas de détourner les cœurs à moins d'être forcé. Cependant, si la surveillance pqos est démarrée en premier, puis PCM est démarré, ce dernier détournera l'infrastructure de surveillance de pqos pour son utilisation.
Correctif du noyau Linux cgroup https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
Noyau Linux version 4.10 et plus récente. Un wiki pour Intel resctrl est disponible sur : https://github.com/intel/intel-cmt-cat/wiki/resctrl
Uniquement avec la version 4.10 du noyau Linux (et plus récente), Intel(R) RDT version 1.0.0 (et plus récente) avec l'interface du système d'exploitation sélectionnée. Voir l'option « -I » dans « man pqos » ou « pqos-os ».
PCM est disponible sur : https://github.com/opcm/pcm
Tableau 5. État d'activation du logiciel Intel(R) RDT.
Cœur | Tâche | CMT | MBM | CHAT L3 | CDP L3 | CHAT L2 | MBA | |
---|---|---|---|---|---|---|---|---|
Intel(R) RDT | Oui | Oui(7) | Oui | Oui | Oui | Oui | Oui | Oui |
Performances Linux | Oui(6) | Oui | Oui(1) | Oui(2) | Non(3) | Non(3) | Non(3) | Non |
Groupe de contrôle Linux | Non | Oui | Non | Non | Oui(4) | Non | Non | Non |
Linux resctrl (5) | Oui | Oui | Oui(8) | Oui(8) | Oui | Oui | Oui | Oui(9) |
Légende:
Références :
CE LOGICIEL EST FOURNI PAR INTEL "EN L'ETAT". AUCUNE LICENCE, EXPRESSE OU IMPLICITE, PAR ESTOPPEL OU AUTRE, SUR LES DROITS DE PROPRIÉTÉ INTELLECTUELLE N'EST ACCORDÉE PAR L'UTILISATION. SAUF TEL QUE PRÉVU DANS LES TERMES ET CONDITIONS DE VENTE D'INTEL, INTEL N'ASSUME AUCUNE RESPONSABILITÉ QUELQUE QUE CE SOIT ET INTEL DÉCLINE TOUTE GARANTIE EXPRESSE OU IMPLICITE RELATIVE À LA VENTE ET/OU L'UTILISATION DES PRODUITS INTEL, Y COMPRIS LA RESPONSABILITÉ OU LES GARANTIES RELATIVES À L'ADAPTATION À UN USAGE PARTICULIER, À LA QUALITÉ MARCHANDE OU VIOLATION DE TOUT BREVET, DROIT D'AUTEUR OU AUTRE DROIT DE PROPRIÉTÉ INTELLECTUELLE.