ThreeDHead Posted December 9, 2014 · Report post Какие интересные изменения в сетевой подсистеме нового ядра. В сетевую подсистему внесены оптимизации, направленные на увеличение производительности пакетной передачи данных. Изменения особенно заметны при обработке большого объёма мелких пакетов. Производительность повышена за счёт организации групповых операций блокировки очереди, а также заполнения/очистки очереди и взаимодействия с драйвером сетевой карты не на уровне отдельных пакетов, а манипулируя порциями пакетов. Внесённые изменения позволяют добиться обработки полной пропускной способности высокоскоростных сетевых интерфейсов даже на относительно слабом оборудовании (например, на обычном компьютере продемонстрирована обработка потока в 40 гбит/сек), даже если в трафике преобладают пакеты небольшого размера; http://www.opennet.ru/opennews/art.shtml?num=41210 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted December 9, 2014 · Report post посмотрите коммиты, относящиеся к сети, но не относящиеся к конкретным драйверам. не так уж и сложно это сделать Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Умник Posted December 9, 2014 · Report post Разработчикам удалось добиться wirespeed TX @ 10 Gbit/s на одном ядре современного CPU, но только в случае генерации пакетов модулем pktgen.ko. В forwarding case не все так радужно, но тоже должно стать лучше. Наверное... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted December 10, 2014 · Report post Подробностей: http://www.linux.com/news/software/linux-kernel/798276-linux-318-4-reasons-to-love-a-diseased-newt http://lwn.net/Articles/615238/ Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted December 11, 2014 · Report post Крутота! От 40 гигабит на пустом месте становится тепло и приятно на душе! :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Igor Diakonov Posted December 11, 2014 · Report post Сферические 40 гбит в вакууме :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Dark_Angel Posted December 11, 2014 · Report post Парни, отпишитесь, как ядро кто трогал? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Antares Posted December 11, 2014 · Report post Парни, отпишитесь, как ядро кто трогал? +1 тоже хотелось бы знать, стоит переходить или нет Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted December 11, 2014 · Report post Они бы лучше RCV_LOWAT допилили наконец, это много где может уронить уронить нагрузку на проц в разы. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nuclearcat Posted December 12, 2014 · Report post +1 тоже хотелось бы знать, стоит переходить или нет Я потрогал, NAT и firewall, никаких особых изменений не заметил. Проапгрейдился, т.к. на этом сервере был 3.14, и случались изредка ребуты. Надо будет пощупать с шейперами. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted December 15, 2014 · Report post Не удалось откомпилить драйвера ixgbe под 3.18 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
telecom Posted December 15, 2014 · Report post Не удалось откомпилить драйвера ixgbe под 3.18 http://sourceforge.net/p/e1000/bugs/443/ Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted December 15, 2014 · Report post Вопрос даже не в том, компилится ли ixgbe или нет. Вопрос скорее в том, когда они (Intel и прочие производители дров) добавят основную фичу в драйверы: The initial plan for 3.18 was to specify a new function that drivers could provide: void (*ndo_xmit_flush)(struct net_device *dev, u16 queue); Вот когда это будет в драйвере, стоит и ожидать кардинального и прироста производительности. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Умник Posted December 15, 2014 · Report post Вот когда это будет в драйвере, стоит и ожидать кардинального и прироста производительности. Если использовать родной драйвер (который идет с ядром, а не с Sourceforge) то там это уже реализовано. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted December 15, 2014 · Report post Вот когда это будет в драйвере, стоит и ожидать кардинального и прироста производительности. Если использовать родной драйвер (который идет с ядром, а не с Sourceforge) то там это уже реализовано. ООО, круто! Получается же что он самый новый. Зачем тогда дрова с SF тащить по крайне мере сейчас? Ведь ядреный самый новый получается на данный момент. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted December 15, 2014 · Report post Ведь ядреный самый новый получается на данный момент. Ну да, и опций-то модуль принимает чуть больше чем одну полезную ;) filename: /lib/modules/3.18.0-031800-lowlatency/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko version: 3.19.1-k license: GPL description: Intel® 10 Gigabit PCI Express Network Driver author: Intel Corporation, <linux.nics@intel.com> srcversion: F9275BC210EF2A95410F915 alias: pci:v00008086d00001560sv*sd*bc*sc*i* ... alias: pci:v00008086d000010B6sv*sd*bc*sc*i* depends: mdio,ptp,dca intree: Y vermagic: 3.18.0-031800-lowlatency SMP preempt mod_unload modversions signer: Magrathea: Glacier signing key sig_key: 1E:6F:05:64:FA:C6:BD:B0:09:A7:AC:4B:C1:FC:7C:1E:51:4F:4C:C3 sig_hashalgo: sha512 parm: max_vfs:Maximum number of virtual functions to allocate per physical function - default is zero and maximum value is 63. (Deprecated) (uint) parm: allow_unsupported_sfp:Allow unsupported and untested SFP+ modules on 82599-based adapters (uint) parm: debug:Debug level (0=none,...,16=all) (int) Против Интеловского: filename: /lib/modules/3.16.2-031602-generic/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko version: 3.22.3 license: GPL description: Intel® 10 Gigabit PCI Express Network Driver author: Intel Corporation, <linux.nics@intel.com> srcversion: 46A1D1E98D09F1B499E601E alias: pci:v00008086d00001560sv*sd*bc*sc*i* ... alias: pci:v00008086d000010B6sv*sd*bc*sc*i* depends: ptp,dca vermagic: 3.16.2-031602-generic SMP mod_unload modversions parm: InterruptType:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default IntMode (deprecated) (array of int) parm: IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int) parm: MQ:Disable or enable Multiple Queues, default 1 (array of int) parm: DCA:Disable or enable Direct Cache Access, 0=disabled, 1=descriptor only, 2=descriptor and data (array of int) parm: RSS:Number of Receive-Side Scaling Descriptor Queues, default 0=number of cpus (array of int) parm: VMDQ:Number of Virtual Machine Device Queues: 0/1 = disable, 2-16 enable (default=8) (array of int) parm: max_vfs:Number of Virtual Functions: 0 = disable (default), 1-63 = enable this many VFs (array of int) parm: VEPA:VEPA Bridge Mode: 0 = VEB (default), 1 = VEPA (array of int) parm: InterruptThrottleRate:Maximum interrupts per second, per vector, (0,1,956-488281), default 1 (array of int) parm: LLIPort:Low Latency Interrupt TCP Port (0-65535) (array of int) parm: LLIPush:Low Latency Interrupt on TCP Push flag (0,1) (array of int) parm: LLISize:Low Latency Interrupt on Packet Size (0-1500) (array of int) parm: LLIEType:Low Latency Interrupt Ethernet Protocol Type (array of int) parm: LLIVLANP:Low Latency Interrupt on VLAN priority threshold (array of int) parm: FdirPballoc:Flow Director packet buffer allocation level: 1 = 8k hash filters or 2k perfect filters 2 = 16k hash filters or 4k perfect filters 3 = 32k hash filters or 8k perfect filters (array of int) parm: AtrSampleRate:Software ATR Tx packet sample rate (array of int) parm: FCoE:Disable or enable FCoE Offload, default 1 (array of int) parm: LRO:Large Receive Offload (0,1), default 1 = on (array of int) parm: allow_unsupported_sfp:Allow unsupported and untested SFP+ modules on 82599 based adapters, default 0 = Disable (array of int) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted December 15, 2014 · Report post Не удалось откомпилить драйвера ixgbe под 3.18 http://sourceforge.net/p/e1000/bugs/443/ Собственно не поэтому не компилится: root@iperf:/services/install/ixgbe-3.22.3/src# uname -a Linux iperf 3.18.0-031800-lowlatency #201412071935 SMP PREEMPT Mon Dec 8 00:44:40 UTC 2014 x86_64 GNU/Linux root@iperf:/services/install/ixgbe-3.22.3/src# make make -C /lib/modules/3.18.0-031800-lowlatency/build SUBDIRS=/services/install/ixgbe-3.22.3/src modules make[1]: вход в каталог «/usr/src/linux-headers-3.18.0-031800-lowlatency» CC [M] /services/install/ixgbe-3.22.3/src/ixgbe_main.o /services/install/ixgbe-3.22.3/src/ixgbe_main.c: In function ‘ixgbe_service_event_complete’: /services/install/ixgbe-3.22.3/src/ixgbe_main.c:319:2: error: implicit declaration of function ‘smp_mb__before_clear_bit’ [-Werror=implicit-function-declaration] smp_mb__before_clear_bit(); ^ cc1: some warnings being treated as errors scripts/Makefile.build:257: ошибка выполнения рецепта для цели «/services/install/ixgbe-3.22.3/src/ixgbe_main.o» make[2]: *** [/services/install/ixgbe-3.22.3/src/ixgbe_main.o] Ошибка 1 Makefile:1381: ошибка выполнения рецепта для цели «_module_/services/install/ixgbe-3.22.3/src» make[1]: *** [_module_/services/install/ixgbe-3.22.3/src] Ошибка 2 make[1]: выход из каталога «/usr/src/linux-headers-3.18.0-031800-lowlatency» Makefile:284: ошибка выполнения рецепта для цели «default» make: *** [default] Ошибка 2 root@iperf:/services/install/ixgbe-3.22.3/src# Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted December 15, 2014 · Report post Ох, да, Ваша правда, кастрат какой-то :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nuclearcat Posted December 15, 2014 · Report post "ошибка выполнения рецепта для цели" !!! Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted February 28, 2015 · Report post Как ни странно, но ndo_xmit_flush (который и анонсирует ядру "я умею обработку кучи пакетов одним блоком") так и нету в новом ixgbe драйвере (3.23.2.1), который вышел 23го февраля. Может кто пнет Intel? Это реально сильно ускорит обработку трафика на Линукс боксах. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted February 28, 2015 · Report post В общем, я забил фич риквест на Сорсфорже, https://sourceforge.net/p/e1000/feature-requests/20/ плюсуем и комментируем, чтобы доказать заинтересованность :) Даешь прокачку роутинга! Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
roysbike Posted March 1, 2015 · Report post А разве на стоковом драйвера из ядра сработает опция options ixgbe allow_unsupported_sfp ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted March 1, 2015 · Report post А разве на стоковом драйвера из ядра сработает опция options ixgbe allow_unsupported_sfp ? Да должно http://forum.nag.ru/forum/index.php?showtopic=99541&view=findpost&p=1051516 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Igor Diakonov Posted March 3, 2015 · Report post Как ни странно, но ndo_xmit_flush (который и анонсирует ядру "я умею обработку кучи пакетов одним блоком") так и нету в новом ixgbe драйвере (3.23.2.1), который вышел 23го февраля. Может кто пнет Intel? Это реально сильно ускорит обработку трафика на Линукс боксах. this particular function was ripped out almost as soon as it landed in the net-next repository. In its place, the sk_buff structure has gained a new Boolean variable called xmit_more. Ну и в ссылке на мейл лист активно обсуждается регрессия при применении предложеного патча... ;) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Igor Diakonov Posted March 3, 2015 · Report post Производительность повышена за счёт организации групповых операций блокировки очереди, а также заполнения/очистки очереди и взаимодействия с драйвером сетевой карты не на уровне отдельных пакетов, а манипулируя порциями пакетов. Не читайте opennet...читайте оригинальную статью. the process of validating packets for transmission could be moved outside of the queue lock entirely, increasing concurrency in the system. The resulting patch had benefits that Eric described as awesome: full 40Gb/sec wire speed, even in the absence of segmentation offload. Needless to say, this patch, too, has been accepted into the net-next tree for the 3.18 merge window. Патч http://lwn.net/Articles/615243/ вроде как отношения к дровам вообще не имеет - затрагивает только само ядро. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...