Назад | Перейти на главную страницу

Минимальная конфигурация ядра для использования ускоренной сети Azure

Я пытаюсь добавить поддержку ускоренной сети Azure в специально созданное ядро ​​Linux. Я включил все драйверы mellanox, поддержку VFIO, драйверы Infiniband, поддержку vsock и все драйверы Hyperv.

Когда я включаю ускоренную сеть на своей сетевой карте с помощью azure cli, вывод lspci показывает, что это сетевая карта Mellanox. Но когда я запускаю "ethtool -S | grep vf_", я получаю следующий результат

vf_rx_packets: 0 vf_rx_bytes: 0 vf_tx_packets: 0 vf_tx_bytes: 0 vf_tx_dropped: 0

Это заставляет меня думать, что ускоренная работа в сети на самом деле не работает. Linux, над которым я работаю, - это кастомная минимальная сборка Debian 9.5. Я пытаюсь собрать ядро ​​4.19.56. Мы создаем собственное ядро, поэтому, пожалуйста, не просите использовать ядро ​​azure linux из резервных портов.

Мне нужно следующее. Допустим, я сделал следующее: 1) загрузил ядро ​​4.19.56 с Kernel.org 2) запустил make defconfig 3) запустил make 4) запустил make модули

Теперь мне нужен список опций ядра, которые мне нужно включить для ускоренной работы в сети. Что-то вроде того, что вы сделали "make defconfig", где-то сохранили вашу конфигурацию, затем запустили "make menuconfig" и выбрали параметры, необходимые для ускоренной работы в сети. Теперь мне нужна разница этих двух конфигураций, которую вы получаете, запустив сценарий scripts / diffconfig, или список параметров, которые нужно включить после входа в menuconfig.

Не стесняйтесь комментировать, если вам нужна дополнительная информация.

PS: Я уже просмотрел всю документацию Microsoft по ускоренной работе в сети, а также заглянул в репозиторий Git по ускоренной сети. Мне нигде не удалось найти минимальный список необходимых опций.

Добавление вывода lspci:

root@localhost:/var/www# lspci
0000:00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03)
0000:00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01)
0000:00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
0000:00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
0000:00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA
8d87:00:02.0 Ethernet controller: Mellanox Technologies MT27500 Family [ConnectX-3 Virtual Function]

Вывод IP-ссылки:

root@localhost:/var/www# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ifb0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 32
    link/ether 3a:1c:d6:ba:bd:a1 brd ff:ff:ff:ff:ff:ff
3: ifb1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 32
    link/ether b6:5b:61:57:61:73 brd ff:ff:ff:ff:ff:ff
4: teql0: <NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 100
    link/void
5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether 00:0d:3a:54:ed:da brd ff:ff:ff:ff:ff:ff
6: eth1: <BROADCAST,MULTICAST,SLAVE> mtu 1500 qdisc mq master eth0 state DOWN mode DEFAULT qlen 1000
    link/ether 00:0d:3a:54:ed:da brd ff:ff:ff:ff:ff:ff

вывод "ethtool -S eth0 | grep vf_":

root@localhost:/var/www# ethtool -S eth0 | grep vf_
vf_rx_packets: 0
vf_rx_bytes: 0
vf_tx_packets: 0
vf_tx_bytes: 0
vf_tx_dropped: 0
cpu0_vf_rx_packets: 0
cpu0_vf_rx_bytes: 0
cpu0_vf_tx_packets: 0
cpu0_vf_tx_bytes: 0
cpu1_vf_rx_packets: 0
cpu1_vf_rx_bytes: 0
cpu1_vf_tx_packets: 0
cpu1_vf_tx_bytes: 0
cpu2_vf_rx_packets: 0
cpu2_vf_rx_bytes: 0
cpu2_vf_tx_packets: 0
cpu2_vf_tx_bytes: 0
cpu3_vf_rx_packets: 0
cpu3_vf_rx_bytes: 0
cpu3_vf_tx_packets: 0
cpu3_vf_tx_bytes: 0

вывод из dmesg | grep "Путь к данным переключен"

root@localhost:/var/www# dmesg | grep "Data path switched"
hv_netvsc 000d3a54-edda-000d-3a54-edda000d3a54 eth0: Data path switched to VF: eth1
hv_netvsc 000d3a54-edda-000d-3a54-edda000d3a54 eth0: Data path switched from VF: eth1

С уважением