1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-stratovirt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
vfio.md 4.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 4 месяцев назад 123faeb

Руководство пользователя VFIO

Введение

VFIO-драйвер — это IOMMU/устройство-независимый фреймворк, предоставляющий защищённый доступ к пространству пользователя. Виртуальные машины часто используют прямой доступ к устройству при настройке для достижения максимальной производительности ввода-вывода.

Подготовка

Для успешного использования устройства VFIO обязательно, чтобы оборудование поддерживало виртуализацию и группы IOMMU. Выполните следующую команду в ОС хоста, чтобы проверить, включён ли IOMMU:

# dmesg | grep iommu

Если IOMMU включён, терминал отобразит следующее:

iommu: Default domain type: Translated
hibmc-drm 0000:0a:00.0: Adding to iommu group 0
ehci-pci 0000:7a:01.0: Adding to iommu group 1
ehci-pci 0000:ba:01.0: Adding to iommu group 2
ohci-pci 0000:7a:00.0: Adding to iommu group 3
ohci-pci 0000:ba:00.0: Adding to iommu group 4
xhci_hcd 0000:7a:02.0: Adding to iommu group 5
...

Предположим, пользователь хочет получить доступ к PCI-устройству 0000:1a:00.3. Устройство подключено к шине PCI, поэтому пользователь будет использовать vfio-pci для управления группой:

# modprobe vfio-pci

Привязка устройства VFIO

Привязка этого устройства к драйверу vfio-pci создаст символьные устройства группы VFIO для этой группы.

# echo 0000:1a:00.3 > /sys/bus/pci/devices/0000:1a:00.3/driver/unbind
# echo `lspci -ns 0000:1a:00.3 | awk -F':| ' '{print $5" "$6}'` > /sys/bus/pci/drivers/vfio-pci/new_id

Командная строка

Четыре свойства поддерживаются для устройства VFIO:

  • host: информация о PCI-устройстве в системе, которая содержит домен, номер шины, номер слота и номер функции.
  • id: имя устройства VFIO.
  • bus: номер шины устройства VFIO.
  • addr: включая номер слота и номер функции.
-device vfio-pci,host=0000:1a:00.3,id=net,bus=pcie.0,addr=0x03.0x0[,multifunction=on]

Примечание: ядро должно содержать драйверы физических устройств, иначе оно не сможет загрузиться нормально. Примечание: избегайте использования устройств balloon и устройств vfio вместе.

Управление горячим подключением

Стандартные виртуальные машины StratoVirt поддерживают горячее подключение VFIO-устройств с помощью QMP. Обратитесь к qmp.md для получения конкретных параметров командной строки.

Пример

Горячее подключение устройства VFIO:

-> {"execute":"device_add", "arguments":{"id":"vfio-0", "driver":"vfio-pci", "bus": "pcie.1", "addr":"0x0", "host": "0000:1a:00.3"}}
<- {"return": {}}

Горячее отключение устройства VFIO:

-> {"execute": "device_del", "arguments": {"id": "vfio-0"}}
<- {"event":"DEVICE_DELETED","data":{"device":"vfio-0","path":"vfio-0"},"timestamp":{"seconds":1614310541,"microseconds":554250}}
<- {"return": {}}

Отвязка устройства VFIO

Если необходимо напрямую отвязать устройство VFIO, вы можете выполнить следующую команду. Примечание: предположим, используется драйвер hinic.

# echo 0000:03:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind
# echo 0000:03:00.0 > /sys/bus/pci/drivers/hinic/bind

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/openeuler-stratovirt.git
git@gitlife.ru:oschina-mirror/openeuler-stratovirt.git
oschina-mirror
openeuler-stratovirt
openeuler-stratovirt
master