Bug 26960

Summary: у нового драйвера (1.6.3-NAPI) пропала одна очередь на Intel 82574L
Product: Sisyphus Reporter: Sergey Y. Afonin <asy>
Component: kernel-modules-e1000e-ovz-elAssignee: Anton V. Boyarshinov <boyarsh>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aspsk, boris, dubrsl, evg, glebfm, ldv, mike, mithraen, rider, sbolshakov, shrek, sin, vitty, vsu, zerg
Version: unstable   
Hardware: all   
OS: Linux   

Description Sergey Y. Afonin 2012-02-18 00:40:12 MSK
Не знаю, где как, но с 1.6.3-NAPI у сетевой карты
Intel Corporation 82574L Gigabit Network Connection
пропала одна очередь. Вот что в /proc/interrupts

 35:  <...>  PCI-MSI-edge      eth1-Q0
 36:  <...>  PCI-MSI-edge      eth1

# ethtool -i eth1
driver: e1000e
version: 1.6.3-NAPI
firmware-version: 2.1-0
bus-info: 0000:02:00.0

Если згрузить старый драйвер, то получается так:

 35:    <...>   PCI-MSI-edge      eth1-rx-0
 36:    <...>   PCI-MSI-edge      eth1-tx-0
 37:    <...>   PCI-MSI-edge      eth1

Это с 
# ethtool -i eth1
driver: e1000e
version: 1.2.20-k2
firmware-version: 2.1-0
bus-info: 0000:02:00.0

Фича перехода на NAPI, или баг ?
Comment 1 Slava Dubrovskiy 2012-02-18 05:21:19 MSK
Можно попробовать

  To Enable a Separate Vector for TX
  ----------------------------------
  # make CFLAGS_EXTRA=-DCONFIG_E1000E_SEPARATE_TX_HANDLER

  This will allocate a separate handler for tx cleanups. This might be useful
  if you have a lot of CPU cores under heavy load and want to spread the
  processing load around.

  With this option, you would get three MSI-X vectors: one for TX, one for RX,
  and one for link.

А еще есть новая версия. Можно на ней проверить.
Comment 2 Sergey Y. Afonin 2012-02-18 13:19:00 MSK
(In reply to comment #1)

> Можно попробовать
>   # make CFLAGS_EXTRA=-DCONFIG_E1000E_SEPARATE_TX_HANDLER

Точно, помогло. Кстати, вопрос, что лучше... Добавить, или сделать дополнительный вариант kernel-modules-e1000e-separate-tx какой-нибудь...
Comment 3 Michael Shigorin 2012-02-20 16:33:23 MSK
Дополнительный-то зачем...
Comment 4 Sergey Y. Afonin 2012-02-20 17:44:51 MSK
Зачем-то сделали параметр для включения. Может, не всегда оно хорошо ?
Comment 5 Slava Dubrovskiy 2012-02-20 22:27:44 MSK
Я думаю что да, делать по умолчанию в некоторых случаях не очень хорошо, т.к. например у меня есть сервера где всего 4 ядра и нету смысла так множить векторы. И еще не известно почему эта возможность не включена по умолчанию.

Поэтому вопрос о возможности иметь в репозитарии разные модули актуален. Например я давно хочу обновить pf_ring, и его имеет смысл реально использовать только в том случае, если используются специально патченные драйвера для сетевух. И если именно с e1000e для ovz-el просто т.к. этот модуль собран отдельно от ядра. (Спасибо aspsk@) то как быть с другими модулями и ядрами где все модули собираются с ядром не очень ясно. Имя модуля менять нельзя. Хотя когда-то vsu@ объяснял как можно этот вопрос решить путем переопределения дирректории локализации модуля. Т.о. достаточно просто установить дополнительный пакет с модулем и при установке будет изменяться расположение модуля и будет загружаться модуль из пакета, а не тот который идет с ядром.
Comment 6 aspsk 2012-02-27 15:36:43 MSK
В Сизиф поехало ядро ovz-el/042stab051.3, а вместе с ним модуль k-m-e1000e-ovz-el, собирающийся с -DCONFIG_E1000E_SEPARATE_TX_HANDLER. Этот параметр влияет только на карточки с поддержкой MSI-X.

Если хочется использовать одну очередь, то существует возможность попросить карточку не работать в моде MSI-X. Для этого у модуля имеется параметр IntMode (имя которого означает Interrupt Mode).

Если все же хочется использовать MSI-X + одна очередь, то придется собрать еще один модуль.
Comment 7 aspsk 2012-02-29 17:17:29 MSK
Раз нет возражений, закрываю