Аннотация:
Команда разработчиков ядра Linux объединила пакет обновлений подсистемы PCI/PCIe с разрабатываемым ядром Linux 7.4. Помимо исправления проблем с перечислением устройств PCI, привязкой драйверов и устранением ошибок, это обновление также улучшает поведение управления питанием при выходе системы из спящего режима, помогая устройствам Linux соответствовать некоторым требованиям сертификации энергоэффективности.

PCI (Peripheral Component Interconnect) — это важный интерфейс для компьютеров для подключения устройств расширения, а PCI Express (PCIe) в настоящее время является широко используемым стандартом межсоединения для видеокарт, твердотельных накопителей NVMe, сетевых карт и других высокоскоростных устройств. Подсистема PCI в ядре Linux отвечает за идентификацию и настройку этих устройств, управление взаимосвязью между устройствами и драйверами и обработку ошибок, возникающих во время работы устройств. Поскольку аппаратные платформы продолжают развиваться, эту часть кода ядра необходимо продолжать адаптировать к различным архитектурам процессоров, реализациям встроенного ПО и устройствам PCIe.
В этом PCI-обновлении Linux 7.4 заслуживающее внимания улучшение включает в себя спящий режим системы. Когда современные компьютеры переходят в спящий режим, им необходимо сохранить рабочее состояние на запоминающее устройство и восстановить необходимую аппаратную операционную среду при восстановлении. Если поведение управления питанием во время процесса восстановления устройства не соответствует ожиданиям, это может повлиять на то, сможет ли система успешно пройти соответствующие сертификаты энергоэффективности.
Новая версия была улучшена для решения этой проблемы с упором на то, чтобы поведение Linux в спящем режиме лучше соответствовало требованиям энергетической сертификации для управления питанием системы. Такие изменения особенно важны для ноутбуков, компьютеров с предустановленной ОС Linux и устройств, требующих специальных сертификатов энергоэффективности. Однако это обновление не означает, что энергопотребление всех устройств Linux будет значительно снижено. Его основная цель — улучшить конкретное поведение во время процесса гибернации и восстановления.
Помимо управления питанием, это обновление подсистемы PCI также охватывает перечисление и настройку устройств. Перечисление устройств — это процесс идентификации устройств PCI, считывания их возможностей и настройки связанных ресурсов при запуске операционной системы или обнаружении оборудования. Обновление исправляет способ, которым некоторые платформы обрабатывают настройку скорости поддержки канала PCIe, так что системы SPARC64 и PowerPC, использующие определенные пути в дереве устройств, также могут правильно записывать возможности скорости канала PCIe.
Что касается управления максимальным размером полезной нагрузки (MPS) PCIe, разработчики также устранили проблему сохранения состояния. Когда ядро корректирует настройки MPS устройства, оно синхронно обновляет сохраненное состояние, чтобы избежать перезагрузки неподходящих старых значений при последующем восстановлении устройства. Такие исправления помогают гарантировать, что конфигурация устройства останется неизменной после сброса, восстановления и т. д.
Механизм обработки ошибок также был улучшен. Механизм расширенных отчетов об ошибках PCIe (AER) используется для обнаружения и обработки ошибок, возникающих в работе каналов или устройств PCIe. Соответствующий код Linux 7.4 устраняет утечку памяти, которая может возникнуть во время процесса восстановления после ошибок, и корректирует некоторую логику восстановления после ошибок, чтобы избежать ненужных операций восстановления при ложных срабатываниях. Для долго работающих серверов и рабочих станций исправления такого типа могут помочь повысить стабильность системы.
Кроме того, этот раунд обновлений также включает в себя управление функциями порта PCIe и логику привязки драйверов. Разработчики ядра централизовали проверки владения некоторыми функциями, чтобы код мог более последовательно определять, имеет ли хост-контроллер собственные возможности управления соответствующими функциями, сокращая количество повторных проверок и потенциальных ошибок конфигурации.
Следует отметить, что улучшения в подсистеме PCI обычно не проявляются напрямую в существенном улучшении производительности того или иного оборудования. Они включают в себя более низкоуровневые механизмы, такие как инициализация устройства, восстановление конфигурации, обработка ошибок и управление питанием. Для большинства обычных пользователей эти изменения могут не привести к немедленным изменениям в работе, но они могут обеспечить более надежную базовую поддержку различных аппаратных платформ.
Linux 7.4 все еще находится на стадии разработки. Это слияние означает, что соответствующие изменения вошли в основной процесс разработки ядра, но это не означает, что была выпущена официальная стабильная версия. Финальная версия также может содержать дополнительные исправления и настройки.
В целом обновление PCI/PCIe Linux 7.4 в основном ориентировано на надежность системы и совместимость оборудования, а улучшение поведения восстановления из спящего режима заслуживает особого внимания. Поскольку Linux продолжает расширять свое использование в ноутбуках, настольных рабочих станциях и серверах, эти, казалось бы, незначительные базовые исправления помогут улучшить способность операционной системы адаптироваться к сложным аппаратным средам.
Комментарии