Рейтинг:0

Ошибка присоединения устройства к DPDK

флаг kr

Ошибка присоединения устройства к DPDK при добавлении интерфейсов в связь OVS в Ubuntu.

  • Убунту 20.04.3
  • ДПДК 19.11.10
  • ОВС 2.13.3
  • Сетевые карты Intel x710 (прошивка 7.10)

Команда:

ovs-vsctl add-bond ovsbr0 bond0 ens2f0 ens2f1 ens3f0 ens3f1 \
   -- set Interface ens2f0 type=dpdk "options:dpdk-devargs=0000:5e:00.0" \
   -- set Interface ens2f1 type=dpdk "options:dpdk-devargs=0000:5e:00.1" \
   -- set Interface ens3f0 type=dpdk "options:dpdk-devargs=0000:d8:00.0" \
   -- set Interface ens3f1 type=dpdk "options:dpdk-devargs=0000:d8:00.1"

Вывод:

ovs-vsctl: обнаружена ошибка при настройке ens2f0: ошибка подключения устройства 0000:5e:00.0 к DPDK. Подробности смотрите в журнале ovs-vswitchd.
ovs-vsctl: обнаружена ошибка при настройке ens2f1: ошибка присоединения устройства 0000:5e:00.1 к DPDK. Подробности смотрите в журнале ovs-vswitchd.
ovs-vsctl: обнаружена ошибка при настройке ens3f0: ошибка подключения устройства 0000:d8:00.0 к DPDK. Подробности смотрите в журнале ovs-vswitchd.
ovs-vsctl: обнаружена ошибка при настройке ens3f1: ошибка присоединения устройства 0000:d8:00.1 к DPDK. Подробности смотрите в журнале ovs-vswitchd.
ovs-vsctl: каталог журнала по умолчанию — «/var/log/openvswitch».

/var/log/openvswitch/ovs-vswitchd.log

2022-01-03T16:00:05.776Z|00083|dpdk|ERR|EAL: драйвер не может подключить устройство (0000:d8:00.1)
2022-01-03T16:00:05.776Z|00084|dpdk|ERR|EAL: не удалось подключить устройство к основному процессу
2022-01-03T16:00:05.776Z|00085|netdev_dpdk|WARN|Ошибка подключения устройства '0000:d8:00.1' к DPDK
2022-01-03T16:00:05.776Z|00086|netdev|WARN|ens3f1: не удалось установить конфигурацию (недопустимый аргумент)
2022-01-03T16:00:05.776Z|00087|dpdk|ERR|Недопустимый port_id=32

Поддержка VT-d включена:

кошка /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-5.4.0-91-generic root=UUID=2849776f-b167-447f-a5d1-ea4b5c831c35 ro iommu=pt intel_iommu=on

я использую vfio-PCI Водитель.

ДМАР:

$ grep -i dmar charlie-dmesg2.yml | grep -и йомму
[ 0.703534] DMAR: IOMMU включен
[ 1.353766] DMAR-IR: идентификатор IOAPIC 12 в базе DRHD 0xc5ffc000 IOMMU 6
[ 1.353767] DMAR-IR: идентификатор IOAPIC 11 в базе DRHD 0xb87fc000 IOMMU 5
[ 1.353768] DMAR-IR: идентификатор IOAPIC 10 в базе DRHD 0xaaffc000 IOMMU 4
[ 1.353770] DMAR-IR: идентификатор IOAPIC 18 в базе DRHD 0xfbffc000 IOMMU 3
[1.353771] DMAR-IR: идентификатор IOAPIC 17 в базе DRHD 0xee7fc000 IOMMU 2
[ 1.353773] DMAR-IR: идентификатор IOAPIC 16 в базе DRHD 0xe0ffc000 IOMMU 1
[ 1.353774] DMAR-IR: идентификатор IOAPIC 15 в базе DRHD 0xd37fc000 IOMMU 0
[ 1.353775] DMAR-IR: идентификатор IOAPIC 8 в базе DRHD 0x9d7fc000 IOMMU 7
[1.353777] DMAR-IR: IOAPIC id 9 в базе DRHD 0x9d7fc000 IOMMU 7

Проблема возникает только в случае автоустановки Ubuntu. Ubuntu, установленный вручную, работает нормально.

Vipin Varghese avatar
флаг de
не могли бы вы поделиться драйвером, с помощью которого вы выполняете привязку к DPDK. Это uio_pci_generic, igb_uio или vfio-pci? Если это vfio-pci, не могли бы вы проверить DMAR на наличие iommu из dmesg?
Dmitry Dmitriev avatar
флаг kr
Я использую vfio-pci: `$ grep -i dmar charlie-dmesg2.yml | grep -и йомму [ 0.703534] DMAR: IOMMU включен [ 1.353766] DMAR-IR: идентификатор IOAPIC 12 в базе DRHD 0xc5ffc000 IOMMU 6 [ 1.353767] DMAR-IR: идентификатор IOAPIC 11 в базе DRHD 0xb87fc000 IOMMU 5 [ 1.353768] DMAR-IR: идентификатор IOAPIC 10 в базе DRHD 0xaaffc000 IOMMU 4 [ 1.353770] DMAR-IR: идентификатор IOAPIC 18 в базе DRHD 0xfbffc000 IOMMU 3 [1.353771] DMAR-IR: идентификатор IOAPIC 17 в базе DRHD 0xee7fc000 IOMMU 2 [ 1.353773] DMAR-IR: идентификатор IOAPIC 16 в базе DRHD 0xe0ffc000 IOMMU 1 [...]`
Vipin Varghese avatar
флаг de
спасибо за ответ, согласно журналам dmesg DMAR IOMMU включен на вашем компьютере. можете ли вы проверить dmesg после сбоя привязки, если в его журнале «Не удается выполнить привязку к драйверу vfio-pci»? Если да, то привязка vfio-pci к iommu по умолчанию не удалась. Пожалуйста, попробуйте `echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode` и поделитесь.
Dmitry Dmitriev avatar
флаг kr
@VipinVarghese спасибо за помощь. Вывод dmesg не содержит сообщений о vfio-pci. На всякий случай попробовал присланную вами команду. Неудачно.
Vipin Varghese avatar
флаг de
очень интересный вопрос, вы используете процессор Intel x86 или x86? Если это AMD, следует использовать `amd_iommu=pt`. Но поскольку вы упомянули ручную установку, я хотел бы подробнее изучить это поведение, возможно ли это для отладки?
Dmitry Dmitriev avatar
флаг kr
Мой коллега предложил мне установить пакет **libdpdk-dev**. Он вытягивает целую кучу зависимостей, но, в конце концов, решает проблему. Удачи!
Vipin Varghese avatar
флаг de
согласно информации об офисном пакете https://packages.debian.org/sid/libdpdk-dev, подразумевается, что это «библиотеки DPDK, скомпилированные как минимум с SSE». Следовательно, я не могу понять, как ручной DPDK 19.11.10 используется для решения проблемы. Что-то не так.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.