Что появилось после включения
Начните с модели устройства, затем переходите к его адресу. Практикум ограничен документацией Linux v6.12; возможности конкретного адаптера, BIOS, IOMMU и гипервизора требуют своих документов.
SR-IOV — расширенная возможность PCI Express, благодаря которой одно физическое устройство представляется как несколько виртуальных: PF и VF соответственно.
В описанной HOWTO модели возможность SR-IOV по умолчанию выключена, а PF ведёт себя как обычное устройство PCIe.
После включения пространство конфигурации каждой VF доступно по собственному Routing ID с номерами шины, устройства и функции. У VF есть PCI Memory Space для отображения её регистров.
Ядро рассматривает VF как PCI-устройство, добавленное горячим подключением; для работы ему нужен драйвер, как обычному PCI-устройству.
Карта принадлежности функций
Составьте карту по записям sysfs и сохраните направления ссылок. Отдельно отметьте зависимости, если они присутствуют.
При аппаратной поддержке SR-IOV и включении возможности драйвером PF ссылка virtfn с индексом N ведёт к записи соответствующей VF в sysfs; индексы начинаются с нуля.
Ссылка physfn у виртуальной функции ведёт к записи той физической функции, с которой эта VF связана.
При включённой возможности SR-IOV и зависимости, заданной изготовителем, dep_link ведёт к физической функции, от которой зависит данное устройство.
Предел и включённое количество
В акте нужны названия прочитанных показателей рядом с числами. Так другой инженер сможет восстановить смысл снимка.
sriov_totalvfs появляется у физического PCIe-устройства с поддержкой SR-IOV и сообщает максимальное число VF, которое может поддержать PF.
sriov_totalvfs обычно соответствует TotalVFs аппаратной возможности, но драйвер вправе уменьшить сообщаемое значение при обнаружении устройства через pci_sriov_set_totalvfs().
Чтение sriov_numvfs возвращает число виртуальных функций, включённых на данной PF.
План изменения числа VF
Сначала опишите начальное состояние и согласованный переход. Затем сопоставьте операцию с правилами интерфейса; успешность работы нагрузки оценивается отдельным испытанием.
Описанный порядок включения VF через sysfs — проверить нулевое sriov_numvfs, затем записать требуемое число, не превышающее sriov_totalvfs.
Запись нуля в sriov_numvfs отключает виртуальные функции выбранной PF.
В примере ABI запись 2 в sriov_numvfs возвращает ошибку, если текущее значение отличается и от 0, и от 2.
Ядро проверяет допустимость sriov_numvfs; в примере ABI запись 10 при sriov_totalvfs=8 возвращает ошибку.
Настройка следующего включения
Отметьте на шкале работ существующие VF и следующее включение. Проверяйте настройку в этой последовательности.
sriov_drivers_autoprobe относится к PF с SR-IOV. Начальное значение 1 означает автоматическую привязку вновь включённых VF к совместимому драйверу.
Ноль в sriov_drivers_autoprobe, записанный до включения VF, отключает автоматическую привязку этих VF к драйверу.
Изменение sriov_drivers_autoprobe не влияет на уже включённые VF. Для описанного сценария ABI требует отключить VF, изменить настройку и включить VF заново.
Имя драйвера, правило и запрос
В журнале разделите настройки выбора и результаты выполненных операций. Такая запись позволяет проверить переход по шагам.
driver_override заменяет обычное сопоставление статических и динамических ID: возможность привязки получает драйвер с совпадающим именем. Допускается одно имя без списка через разделители.
Пустая строка в driver_override снимает переопределение и возвращает стандартные правила сопоставления устройства и драйвера.
Запись driver_override не отвязывает устройство от текущего драйвера и не загружает указанный драйвер автоматически; при отсутствии загруженного драйвера с подходящим именем привязка не произойдёт.
Запись адреса PCI-устройства в bind вызывает попытку привязки соответствующего драйвера к устройству. Адрес имеет формат DDDD:BB:DD.F — домен, шина, устройство и функция.
Общий ресурс MSI-X
Для учёта ресурса подпишите объект каждого показателя. Сохраните собственную запись назначений рядом со снимком интерфейса.
sriov_vf_total_msix относится к PF и содержит общее число векторов MSI-X, доступных для назначения всем связанным с ней VF.
У поддерживающего эту возможность устройства sriov_vf_total_msix остаётся постоянным после назначения векторов MSI-X.
Если устройство не поддерживает эту возможность распределения векторов MSI-X, sriov_vf_total_msix равен нулю.
Настройка VF и выделенные векторы
Завершите разбор проверкой адресата операции, значения настройки и доступности её записи. Результаты работы приложения потребуют отдельного измерения.
sriov_vf_msix_count относится к отдельной VF. Положительное записанное число сообщается как Table Size в её возможности MSI-X.
Запись нуля в sriov_vf_msix_count восстанавливает значение по умолчанию для устройства.
Отрицательные значения sriov_vf_msix_count недопустимы.
sriov_vf_msix_count доступен для записи, если PF привязана к драйверу, который реализует sriov_set_msix_vec_count().
Имена файлов в msi_irqs соответствуют выделенным устройству векторам прерываний. Значение файла показывает режим этого вектора — msi или msix.
Проверьте инженерное мышление
Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.
Следующий шаг
Сформулируйте задачу, затем уточните требования перед выбором оборудования.
Разобрать свою задачу с ДелектусомОткроется черновик вопроса. Отправьте его, когда будете готовы.
Источники курса
Ссылки приведены один раз для всего курса, чтобы не мешать чтению каждого тезиса.
- Официальная документация
PCI Express I/O Virtualization Howto
The Linux Kernel developers · Linux v6.12, тег от 17.11.2024; последний коммит файла 4f23bd5d09af, committer 2022-07-11
Полный RST: 171 строк. Скачан редактором и прочитан автором 11.09.2026. SHA-256 62669b332bd99190649597ecce75d7a50a75afdb32f352a3546d9195221475ee. Авторская дата последнего коммита 2022-06-07; дата тегирования задаёт редакцию. Страниц в оригинале нет.
Открыть первоисточник - Официальная документация
Linux PCI sysfs ABI — sysfs-bus-pci
The Linux Kernel developers · Linux v6.12, тег от 17.11.2024; последний коммит файла 759ec2824289, committer 2024-09-06
Полный ABI-текст: 574 строк. Скачан редактором и прочитан автором 11.09.2026. SHA-256 13a73b125e800a57c2ed352f49a85e03a6dfb41eb33d3d498beb9297b92e28d1. Авторская дата последнего коммита 2024-09-04; дата тегирования задаёт редакцию. Страниц в оригинале нет.
Открыть первоисточник