Page 1 of 1

IPoE Q-in-Q Intel X520DA2 82599 несимметричное распределение IRQ

Posted: 23 Dec 2015, 09:30
by tos
IPoE Q-in-Q Intel X520DA2 82599 несимметричное распределение IRQ прерываний по очередям.
Если точнее сказать, то все IRQ идут только по одной очереди, вследствии чего нагружается только одно ядро.
Включил биты IXGBE_DMATXCTL_GDV и IXGBE_CTRL_EXT_EXTENDED_VLAN в регистрах согласно даташиту.
Наложением следущего патча на драйвера:

Code: Select all

diff -rupN ixgbe-3.22.3//src/ixgbe_main.c ixgbe-3.22.3-qinq//src/ixgbe_main.c
--- ixgbe-3.22.3//src/ixgbe_main.c      2014-08-15 04:17:42.000000000 +0500
+++ ixgbe-3.22.3-qinq//src/ixgbe_main.c 2014-11-18 19:07:49.000000000 +0500
@@ -3629,6 +3629,11 @@ static void ixgbe_configure_tx(struct ix
                dmatxctl |= IXGBE_DMATXCTL_TE;
                IXGBE_WRITE_REG(hw, IXGBE_DMATXCTL, dmatxctl);
        }
+       
+       /* Enable Global Double VLAN */
+       dmatxctl = IXGBE_READ_REG(hw, IXGBE_DMATXCTL);
+       dmatxctl |= IXGBE_DMATXCTL_GDV;
+       IXGBE_WRITE_REG(hw, IXGBE_DMATXCTL, dmatxctl);

        /* Setup the HW Tx Head and Tail descriptor pointers */
        for (i = 0; i < adapter->num_tx_queues; i++)
@@ -5719,6 +5724,12 @@ static void ixgbe_up_complete(struct ixg
        mod_timer(&adapter->service_timer, jiffies);

        ixgbe_clear_vf_stats_counters(adapter);
+
+       /* Set Extended VLAN bit */
+       ctrl_ext = IXGBE_READ_REG(hw, IXGBE_CTRL_EXT);
+       ctrl_ext |= IXGBE_CTRL_EXT_EXTENDED_VLAN;
+       IXGBE_WRITE_REG(hw, IXGBE_CTRL_EXT, ctrl_ext);
+
        /* Set PF Reset Done bit so PF/VF Mail Ops can work */
        ctrl_ext = IXGBE_READ_REG(hw, IXGBE_CTRL_EXT);
        ctrl_ext |= IXGBE_CTRL_EXT_PFRSTD;
diff -rupN ixgbe-3.22.3//src/ixgbe_type.h ixgbe-3.22.3-qinq//src/ixgbe_type.h
--- ixgbe-3.22.3//src/ixgbe_type.h      2014-08-15 04:17:42.000000000 +0500
+++ ixgbe-3.22.3-qinq//src/ixgbe_type.h 2014-11-18 19:08:04.000000000 +0500
@@ -1119,6 +1119,7 @@ struct ixgbe_thermal_sensor_data {
 #define IXGBE_CTRL_EXT_NS_DIS  0x00010000 /* No Snoop disable */
 #define IXGBE_CTRL_EXT_RO_DIS  0x00020000 /* Relaxed Ordering disable */
 #define IXGBE_CTRL_EXT_DRV_LOAD        0x10000000 /* Driver loaded bit for FW */
+#define IXGBE_CTRL_EXT_EXTENDED_VLAN   0x04000000 /* Extended VLAN bit */

 /* Direct Cache Access (DCA) definitions */
 #define IXGBE_DCA_CTRL_DCA_ENABLE      0x00000000 /* DCA Enable */
После включения данного функционала vlan-mon перестал создавать QinQ интерфейсы.
Есть какие то идеи, что можно сделать?

Re: IPoE Q-in-Q Intel X520DA2 82599 несимметричное распределение IRQ

Posted: 30 Dec 2015, 08:48
by _longhorn_
Пробовали включать RPS и RFS? С PPPoE очень помогает, по-идее и с Q-in-Q тоже должно помочь.

Re: IPoE Q-in-Q Intel X520DA2 82599 несимметричное распределение IRQ

Posted: 12 Jul 2016, 14:02
by roysbike
Добрый день. У вас работает vlan-mon на этой карте 82599? Не хочет создавать vlan-ы , на i350/82576 все работало как надо

Re: IPoE Q-in-Q Intel X520DA2 82599 несимметричное распределение IRQ

Posted: 14 Jul 2016, 06:59
by _longhorn_
roysbike wrote:Добрый день. У вас работает vlan-mon на этой карте 82599? Не хочет создавать vlan-ы , на i350/82576 все работало как надо
Добрый день. Да, vlan-mon работает нормально, правда иногда бывает перестает после добавления на прослушку нового влана и accel-cmd reload. А так все нормально.

Re: IPoE Q-in-Q Intel X520DA2 82599 несимметричное распределение IRQ

Posted: 14 Jul 2016, 07:00
by roysbike
+1 reload приходиться делать. Какая у вас ОС и ядро?

Re: IPoE Q-in-Q Intel X520DA2 82599 несимметричное распределение IRQ

Posted: 14 Jul 2016, 08:23
by _longhorn_
debian 8, ядра 3.14 и 4.4.