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

IPoE related questions
Post Reply
tos
Posts: 10
Joined: 19 Nov 2014, 12:33

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

Post 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 интерфейсы.
Есть какие то идеи, что можно сделать?
_longhorn_
Posts: 36
Joined: 03 Sep 2015, 14:37

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

Post by _longhorn_ »

Пробовали включать RPS и RFS? С PPPoE очень помогает, по-идее и с Q-in-Q тоже должно помочь.
roysbike
Posts: 103
Joined: 18 Oct 2014, 10:59

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

Post by roysbike »

Добрый день. У вас работает vlan-mon на этой карте 82599? Не хочет создавать vlan-ы , на i350/82576 все работало как надо
_longhorn_
Posts: 36
Joined: 03 Sep 2015, 14:37

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

Post by _longhorn_ »

roysbike wrote:Добрый день. У вас работает vlan-mon на этой карте 82599? Не хочет создавать vlan-ы , на i350/82576 все работало как надо
Добрый день. Да, vlan-mon работает нормально, правда иногда бывает перестает после добавления на прослушку нового влана и accel-cmd reload. А так все нормально.
roysbike
Posts: 103
Joined: 18 Oct 2014, 10:59

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

Post by roysbike »

+1 reload приходиться делать. Какая у вас ОС и ядро?
_longhorn_
Posts: 36
Joined: 03 Sep 2015, 14:37

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

Post by _longhorn_ »

debian 8, ядра 3.14 и 4.4.
Post Reply