Виртуализация ввода-вывода · проверено по источникам

SR-IOV: физическая и виртуальная функции PCIe

SR-IOV — расширенная возможность PCIe: одно физическое устройство (PF) представляется как несколько виртуальных (VF). Каждая включённая VF имеет своё пространство конфигурации и регистры; в Linux ей нужен драйвер.

Также ищут: SR-IOV · PF и VF · Single Root I/O Virtualization

Практический смысл

Почему это важно

Подготовка адаптера для виртуальных машин начинается с карты функций. Полезно установить принадлежность каждой VF, её адрес и состояние включения. Похожее название адаптера и порядковый номер функции эту карту не заменяют.

Доказательная часть

Что подтверждено

  1. SR-IOV — расширенная возможность PCI Express, благодаря которой одно физическое устройство представляется как несколько виртуальных: PF и VF соответственно.

    Граница применимости: Linux v6.12; при поддержке оборудованием и драйвером. HOWTO § What is SR-IOV, строки 18–23.

  2. В описанной HOWTO модели возможность SR-IOV по умолчанию выключена, а PF ведёт себя как обычное устройство PCIe.

    Граница применимости: Linux v6.12; при поддержке оборудованием и драйвером. HOWTO § What is SR-IOV, строки 22–26. Это исходная модель HOWTO, а не показание текущей конфигурации конкретного сервера.

  3. После включения пространство конфигурации каждой VF доступно по собственному Routing ID с номерами шины, устройства и функции. У VF есть PCI Memory Space для отображения её регистров.

    Граница применимости: Linux v6.12; при поддержке оборудованием и драйвером. HOWTO § What is SR-IOV, строки 25–29.

  4. Ядро рассматривает VF как PCI-устройство, добавленное горячим подключением; для работы ему нужен драйвер, как обычному PCI-устройству.

    Граница применимости: Linux v6.12; при поддержке оборудованием и драйвером. HOWTO § How can I use the Virtual Functions, строки 53–58. Рассматривается модель ядра, а не физическое извлечение адаптера из сервера.

  5. При аппаратной поддержке SR-IOV и включении возможности драйвером PF ссылка virtfn с индексом N ведёт к записи соответствующей VF в sysfs; индексы начинаются с нуля.

    Граница применимости: Linux v6.12; при поддержке оборудованием и драйвером. ABI What: …/virtfnN, строки 178–185.

  6. Ссылка physfn у виртуальной функции ведёт к записи той физической функции, с которой эта VF связана.

    Граница применимости: Linux v6.12; при поддержке оборудованием и драйвером. ABI What: …/physfn, строки 197–203.

  7. При включённой возможности SR-IOV и зависимости, заданной изготовителем, dep_link ведёт к физической функции, от которой зависит данное устройство.

    Граница применимости: Linux v6.12; при поддержке оборудованием и драйвером. ABI What: …/dep_link, строки 187–195. Это сведения о зависимости. Утверждение не задаёт её электрическое устройство или поведение при отказе.

Граница терминов

Не путать

SR-IOV: предел и включение виртуальных функций

SR-IOV описывает возможность представить физическое устройство как несколько виртуальных. Число уже включённых VF сообщает sriov_numvfs; аппаратная возможность и включённое количество — разные сведения.

Перед спецификацией

Что проверить

  1. Запишите адреса PF и VF в снятом состоянии системы.
  2. Для выбранной VF прочитайте цель physfn.
  3. Сопоставьте индексы virtfn с адресами записей VF.
  4. Проверьте, была ли возможность SR-IOV включена при чтении ссылок.
  5. Сохраните имеющиеся dep_link как отдельные сведения о зависимостях.
  6. Разделите наличие VF и наличие подходящего драйвера.
Открытые основания

Первоисточники

  • Официальная документация

    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; дата тегирования задаёт редакцию. Страниц в оригинале нет.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие