Этот пакет программного обеспечения обеспечивает базовую поддержку технологии Intel(R) Resource Director (Intel(R) RDT) и технологии Intel(R) I/O Resource Director (Intel(R) I/O RDT), включая: Технологию мониторинга кэша (CMT) , мониторинг пропускной способности памяти (MBM), технология распределения кэша (CAT), приоритезация кода и данных (CDP) и распределение пропускной способности памяти (MBA).
В принципе, программное обеспечение программирует технологии через регистры, специфичные для модели (MSR) на основе аппаратных потоков. Доступ к MSR организован через стандартный драйвер операционной системы: msr в Linux и cpuctl во FreeBSD. В наиболее распространенных архитектурных реализациях наличие технологий обнаруживается с помощью инструкции CPUID.
В ограниченном числе особых случаев, когда CAT архитектурно не поддерживается в конкретном SKU (но вместо этого существует неархитектурная (зависящая от модели) реализация), его можно обнаружить по строке бренда. Эта строка бренда считывается из CPUID и сравнивается с таблицей известных поддерживаемых SKU. При необходимости финальная проверка заключается в проверке конкретных MSR для выявления возможностей оборудования, однако рекомендуется использовать перечисление CPUID везде, где это возможно.
Начиная с версии программного обеспечения v1.0.0 в библиотеку добавлена возможность использования Intel(R) RDT через доступные интерфейсы ОС (perf и resctrl в Linux). Библиотека обнаруживает наличие этих интерфейсов и позволяет выбрать предпочтительный через опцию конфигурации. В результате существующие инструменты, такие как «pqos» или «rdtset», также могут использоваться для управления Intel(R) RDT способом, совместимым с ОС. Начиная с версии 4.3.0 интерфейс ОС стал опцией по умолчанию. Для облегчения выбора интерфейса были добавлены оболочки инструментов pqos. «pqos-os» и «pqos-msr» для операций интерфейса ОС и MSR соответственно.
Опция времени компиляции PID API была удалена, и API всегда доступны. Обратите внимание, что правильная работа этих API зависит от доступности и выбора интерфейса ОС.
Этот пакет программного обеспечения поддерживается, обновляется и развивается на https://github.com/intel/intel-cmt-cat.
https://github.com/intel/intel-cmt-cat/wiki содержит часто задаваемые вопросы, примеры использования и полезные ссылки.
Инструкции по установке пакета см. в файле INSTALL.
каталог «lib»:
Включает файлы библиотеки программного обеспечения, предоставляющие API для обнаружения, мониторинга и распределения технологий. Для получения более подробной информации обратитесь к библиотеке README (lib/README).
Каталог «lib/perl»:
Включает оболочку Perl библиотеки PQoS. Для получения более подробной информации обратитесь к интерфейсу README (lib/perl/README).
Каталог «lib/python»:
Включает оболочку библиотеки PQoS Python 3.x. Для получения более подробной информации обратитесь к интерфейсу README (lib/python/README.md).
каталог «pqos»:
Включает исходные файлы для утилиты, обеспечивающей доступ из командной строки к Intel(R) RDT. Утилита подключается к библиотеке и программирует технологии через ее API. Для получения более подробной информации обратитесь к утилите README «pqos/README». Страница руководства утилиты «pqos» также предоставляет информацию об использовании инструмента: $ man pqos
каталог "rdtset":
Включает исходные файлы для утилиты, которая обеспечивает функциональность, подобную «набору задач», для настройки RDT. Утилита подключается к библиотеке и программирует технологии через ее API. Для получения более подробной информации обратитесь к утилите README «rdtset/README». Страница руководства утилиты «rdtset» также предоставляет информацию об использовании инструмента: $ man rdtset
Каталог «appqos»:
Включает исходные файлы для приложения, которые позволяют группировать приложения в пулы на основе приоритета. Каждому пулу назначается конфигурация Intel(R) RDT и Intel(R) SST, которую можно настроить при запуске или во время выполнения через REST API. Для получения более подробной информации обратитесь к файлу README приложения «appqos/README».
Каталог «appqos_client»:
Включает исходные файлы для клиентского веб-приложения App QoS. Приложение предоставляет простой пользовательский интерфейс для удаленной настройки Intel(R) RDT и Intel(R) SST в системах, где работает App QoS. Для получения более подробной информации обратитесь к файлу README приложения «appqos_client/README».
Каталог «примеры»:
Включает примеры использования Intel(R) RDT на C и Perl через API библиотеки. Для получения более подробной информации обратитесь к файлу README «examples/README».
каталог «SNMP»:
Включает субагент Net-SNMP AgentX, написанный на Perl, для демонстрации использования API-оболочки Perl библиотеки PQoS. Для получения более подробной информации обратитесь к файлу README «snmp/README».
каталог «инструменты»:
Включает инструмент membw для увеличения пропускной способности памяти с помощью различных операций.
каталог "srpm":
Включает файлы *.src, *.rpm и *.spec для пакета программного обеспечения.
Файл «Журнал изменений»:
Краткое описание изменений между релизами.
«УСТАНОВИТЬ» файл:
Инструкции по установке.
Файл «ЛИЦЕНЗИЯ»:
Лицензия пакета.
каталог «юнит-тест»:
Модульные тесты
Поддерживаемые продукты можно найти в дополнении A к спецификации архитектуры Intel® Resource Director Technology (Intel® RDT): https://www.intel.com/content/www/us/en/content-details/789566/intel-resource -директор-технология-intel-rdt-architecture-specification.html
Приложение B содержит список процессоров с функциями Intel® RDT для конкретной модели.
Примечание. Для обнаружения функций, специфичных для модели, необходимо установить переменную среды RDT_PROBE_MSR
при использовании библиотеки и утилит. Эти функции доступны только при использовании интерфейса MSR. Дополнительную информацию см. в разделе «Интерфейсы» ниже. См. примеры использования в вики.
Дополнительные сведения об Intel(R) RDT см. в руководствах по разработке программного обеспечения для архитектуры Intel(R), доступных по адресу: 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 Конкретную информацию можно найти в томе 3а, главы 17.18 и 17.19.
Linux на данный момент является основной поддерживаемой операционной системой. Существует порт программного обеспечения для FreeBSD, но из-за ограниченных возможностей проверки на данном этапе оно является скорее экспериментальным. Хотя большинство современных ядер Linux включают поддержку Intel(R) RDT, пакет программного обеспечения Intel(R) RDT предшествует этим расширениям и может работать как с поддержкой ядра, так и без нее. Программное обеспечение Intel(R) RDT может обнаруживать и использовать эти расширения ядра, если они доступны, для добавления функциональности, но оно также совместимо с устаревшими ядрами.
Поддержка ядра Linux для Intel(R) RDT была первоначально введена в расширениях системных вызовов Linux perf для CMT и MBM. Совсем недавно в интерфейс Resctrl была добавлена поддержка CAT, CDP и MBA. В современных ядрах Linux рекомендуется использовать интерфейс ядро/ОС, если он доступен. Подробности об этих интерфейсах можно найти в resctrl_ui.txt. Этот программный пакет Intel(R) RDT продолжает бесперебойно работать во всех версиях ядра Linux.
Программная библиотека и утилиты Intel(R) RDT предлагают два интерфейса для программирования технологий Intel(R) RDT: интерфейсы MSR и ОС.
Интерфейс MSR используется для настройки платформы путем непосредственного программирования аппаратного обеспечения (MSR). Это устаревший интерфейс, который не требует поддержки ядра для Intel(R) RDT, но ограничивается мониторингом и управлением ресурсами для каждого ядра.
Позже в пакет был добавлен интерфейс ОС, и если его выбрать, библиотека будет использовать расширения ядра Linux для программирования этих технологий. Это позволяет отслеживать и управлять ресурсами для каждого ядра/процесса и должно использоваться при наличии.
Дополнительную информацию о том, когда в пакет была добавлена поддержка функции Intel(R) RDT (MSR и ОС), см. в таблицах ниже.
Версия Intel(R) RDT | Функция RDT включена | Требуется версия ядра |
---|---|---|
0.1.3 | L3 КАТ, СМТ, МБМ | Любой |
0.1.4 | L3 CDP | Любой |
0.1.5 | L2 КАТ | Любой |
1.2.0 | МВА | Любой |
2.0.0 | L2 CDP | Любой |
5.0.0 | РДТ ввода/вывода | Любой |
Версия Intel(R) RDT | Функция RDT включена | Требуется версия ядра | Рекомендуемый интерфейс |
---|---|---|---|
0.1.4 | СМТ (Перф) | 4.1 | МСР (1) |
1.0.0 | МБМ (Перф) | 4.7 | МСР (1) |
1.1.0 | L3 CAT, L3 CDP, L2 CAT (Resctrl) | 4.10 | ОС только для распределения (за исключением MBA) MSR для распределения + мониторинг (2) |
1.2.0 | MBA (Resctrl) | 4.12 | ОС только для распределения MSR для распределения + мониторинг (2) |
2.0.0 | СМТ, МБМ (Resctrl) | 4.14 | ОС |
2.0.0 | L2 CDP | 4.16 | ОС |
3.0.0 | MBA CTRL (Resctrl) | 4.18 | ОС |
Ссылки:
Единственные зависимости Intel(R) RDT — это доступ к библиотекам C и pthreads, а также:
Включите поддержку Intel(R) RDT в:
Примечание. До версии 4.10 параметры конфигурации ядра не требуются.
Короче говоря, использование программного обеспечения Intel(R) RDT или PCM вместе с платформами Linux perf и cgroup на данный момент не разрешено.
Как бы это ни разочаровывало, использование Linux perf для CMT и MBM и Intel(R) RDT для CAT и CDP не разрешено. Это связано с тем, что Linux perf переопределяет существующую конфигурацию CAT во время своей работы.
Существует несколько вариантов использования CAT:
Таблица 4. Матрица совместимости программного обеспечения
Intel(R) РДТ | ПКМ | Linux производительность | Группа Linux | Linux | |
---|---|---|---|---|---|
Intel(R) РДТ | Да(1) | Да(2) | Да(5) | Нет | Да(5) |
ПКМ | Да(2) | Да | Нет | Нет | Нет |
Linux производительность | Да(5) | Нет | Да | Да(3) | Да |
Группа Linux | Нет | Нет | Да | Да(3) | Нет |
Восстановление Linux (4) | Да(5) | Нет | Да | Нет | Да |
Ссылки:
Мониторинг pqos от Intel(R) RDT может обнаружить другие процессы мониторинга pqos в системе. rdtset от Intel(R) RDT обнаруживает другие процессы, запущенные с помощью rdtset, и не использует их ресурсы CAT/CDP.
pqos от Intel(R) RDT может обнаружить, что PCM контролирует ядра, и не будет пытаться захватить ядра, если это не будет принудительно. Однако, если сначала запускается мониторинг pqos, а затем запускается PCM, то последний захватит инфраструктуру мониторинга из pqos для своего использования.
Патч ядра cgroup Linux https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
Ядро Linux версии 4.10 и новее. Вики-сайт Intel resctrl доступен по адресу: https://github.com/intel/intel-cmt-cat/wiki/resctrl.
Только с ядром Linux версии 4.10 (и новее), Intel(R) RDT версии 1.0.0 (и новее) с выбранным интерфейсом ОС. См. параметр «-I» в «man pqos» или «pqos-os».
PCM доступен по адресу: https://github.com/opcm/pcm.
Таблица 5. Статус включения программного обеспечения Intel(R) RDT.
Основной | Задача | СМТ | МБМ | L3 КАТ | L3 CDP | L2 КАТ | МВА | |
---|---|---|---|---|---|---|---|---|
Intel(R) РДТ | Да | Да(7) | Да | Да | Да | Да | Да | Да |
Linux производительность | Да(6) | Да | Да(1) | Да(2) | Нет(3) | Нет(3) | Нет(3) | Нет |
Группа Linux | Нет | Да | Нет | Нет | Да(4) | Нет | Нет | Нет |
Восстановление Linux (5) | Да | Да | Да(8) | Да(8) | Да | Да | Да | Да(9) |
Легенда:
Ссылки:
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ КОМПАНИЕЙ INTEL «КАК ЕСТЬ». НИКАКИЕ ЛИЦЕНЗИИ, ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ, ПУТЕМ ЭСТОППЕЛЯ ИЛИ ДРУГИМ ОБРАЗОМ, НА ЛЮБЫЕ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ НЕ ПРЕДОСТАВЛЯЮТСЯ ПОСРЕДСТВОМ ИСПОЛЬЗОВАНИЯ. ЗА ИСКЛЮЧЕНИЕМ СЛУЧАЕВ, ПРЕДУСМОТРЕННЫХ УСЛОВИЯМИ ПРОДАЖИ INTEL, INTEL НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ, И INTEL ОТКАЗЫВАЕТСЯ ОТ ЛЮБЫХ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ОТНОСЯЩИХСЯ К ПРОДАЖЕ И/ИЛИ ИСПОЛЬЗОВАНИЮ ПРОДУКЦИИ INTEL, ВКЛЮЧАЯ ОТВЕТСТВЕННОСТЬ ИЛИ ГАРАНТИИ, ОТНОСЯЩИЕСЯ К ПРИГОДНОСТИ ДЛЯ КОНКРЕТНАЯ ЦЕЛЬ, КОММЕРЧЕСКАЯ ПРИГОДНОСТЬ ИЛИ НАРУШЕНИЕ ЛЮБЫХ ПАТЕНТОВ, АВТОРСКИХ ПРАВ ИЛИ ДРУГИХ ПРАВ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ.