Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save strizhechenko/94cde0f76a199341b8e4 to your computer and use it in GitHub Desktop.
Save strizhechenko/94cde0f76a199341b8e4 to your computer and use it in GitHub Desktop.
Проблема с добавлением сетёвки в бридж

Сетёвка через некоторое время после попадения в бридж внезапно начинает терять все rx-пакеты.

OS: CentOS 6.7 x86_64 Сетевая карта: 09:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

судя по всему косяк где-то в дровишке

# ethtool -i eth4
driver: ixgbe
version: 4.1.5

причём заставить заново работать получается только сделав rmmod ixgbe и обратно.

Вот вся информация которой располагаю на текущий момент.

проявляется на разных версиях драйвера

Мной тестировались:

  • 3.18
  • 4.1.5
  • 4.2.3

Иногда возникает Tx Unit Hang

Dec 17 10:15:18 tstsrv kernel: ixgbe 0000:09:00.1: eth4: Detected Tx Unit Hang
Dec 17 10:15:18 tstsrv kernel:  Tx Queue             <0>
Dec 17 10:15:18 tstsrv kernel:  TDH, TDT             <0>, <1>
Dec 17 10:15:18 tstsrv kernel:  next_to_use          <1>
Dec 17 10:15:18 tstsrv kernel:  next_to_clean        <0>
Dec 17 10:15:18 tstsrv kernel: ixgbe 0000:09:00.1: eth4: tx_buffer_info[next_to_clean]
Dec 17 10:15:18 tstsrv kernel:  time_stamp           <130c34874>
Dec 17 10:15:18 tstsrv kernel:  jiffies              <130c3523e>
Dec 17 10:15:18 tstsrv kernel: ixgbe 0000:09:00.1: eth4: tx hang 14 detected on queue 0, resetting adapter
Dec 17 10:15:18 tstsrv kernel: ixgbe 0000:09:00.1: eth4: Reset adapter

missed и без него начинают расти

Проявляется после добавления в бридж

Без добавления в bridge, сетёвка не начинает выращивать missed.

Включена опция:

net.bridge.bridge-nf-call-iptables = 1

Возможно проблема на самом деле не в самом бридже, а в роутинге пакетов, кстати.

Missed начинаются не сразу

при добавлении в бридж, сетёвка живёт около 2-10 секунд, после этого растут missed

Missed начинаются независимо от счётчиков:

  • Входящих/исходящих пакетов/байт
  • прерываний на сетёвке
  • возможно зависит от jiffies, но хз как посмотреть

Бывает зависает на ≈5000 прерываний на rxtx-очереди, бывает на 200000.

Скорее всего потери - следствие, а не причина

Когда начинается потеря пакетов, прерывания на очередях сетёвки растут по 1 в сек

33:      81414          0          0          0   PCI-MSI-edge      eth4-TxRx-0
34:      71666          0          0          0   PCI-MSI-edge      eth4-TxRx-1
35:      99911          0          0          0   PCI-MSI-edge      eth4-TxRx-2
36:      80284          0          0          0   PCI-MSI-edge      eth4-TxRx-3

33:      81415          0          0          0   PCI-MSI-edge      eth4-TxRx-0
34:      71667          0          0          0   PCI-MSI-edge      eth4-TxRx-1
35:      99912          0          0          0   PCI-MSI-edge      eth4-TxRx-2
36:      80285          0          0          0   PCI-MSI-edge      eth4-TxRx-3

повторяется при всех IntMode:

  • legacy
  • MSI
  • MSI-X

Дополнительная информация

  • всё крутится на AMD процессоре, но не уверен что он здесь замешан, сегодня вероятно удастся протестировать на Xeon.
  • В README драйвера упоминается, что при bridging/routing рекомендуется отключать GRO, но это не помогает.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment