Поддержка PCI Resizable BAR в ядре Linux 6.19 будет переработана и вынесена в отдельный модуль
В ядре Linux 6.19 ожидается важная реорганизация поддержки PCI Resizable BAR (ReBAR). Над обновлением работает инженер Intel Илпо Ярвинен, который внёс серию патчей в ветку next основного репозитория PCI ядра. Главная цель изменений — сделать поддержку ReBAR более модульной, читаемой и масштабируемой в будущем.

До настоящего момента код ReBAR находился в файле pci.c, служащем свалкой для всех функций, не имеющих отдельного модуля. В рамках обновления вся логика Resizable BAR будет вынесена в новый файл rebar.c, что уменьшит объём основного кода PCI и выделит ReBAR как отдельную подсистему. В результате в pci.c больше не останется вызовов pci_rebar_*(), что подчёркивает успешную изоляцию ReBAR.
Также будут добавлены новые API-функции для работы с ReBAR, которые упростят реализацию в драйверах. Ранее операции с Resizable BAR выполнялись на уровне драйверов устройств, но теперь часть логики будет перенесена в PCI Core, что упростит сопровождение и сократит дублирование.
Отдельным шагом стала смена представления маски размеров BAR с u32 на u64, чтобы соответствовать спецификации PCIe, допускающей размеры выше 128 ТБ. Хотя эти сверхбольшие размеры пока не реализуются, переход на u64 делает API более надёжным и готовым к будущим расширениям.
Все эти изменения уже добавлены в ветку next и, как ожидается, попадут в merge-окно для Linux 6.19 в декабре. Это очередной шаг в сторону оптимизации и устойчивости PCIe-инфраструктуры ядра.
















