From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 5084E9ABE for ; Wed, 25 Feb 2015 06:00:05 +0100 (CET) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP; 24 Feb 2015 20:54:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,643,1418112000"; d="scan'208";a="459248162" Received: from kmsmsx152.gar.corp.intel.com ([172.21.73.87]) by FMSMGA003.fm.intel.com with ESMTP; 24 Feb 2015 20:44:25 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by KMSMSX152.gar.corp.intel.com (172.21.73.87) with Microsoft SMTP Server (TLS) id 14.3.195.1; Wed, 25 Feb 2015 12:55:28 +0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.62]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.209]) with mapi id 14.03.0195.001; Wed, 25 Feb 2015 12:55:09 +0800 From: "Liang, Cunming" To: Stephen Hemminger , "Nemeth, Balazs" , "Richardson, Bruce" , Neil Horman Thread-Topic: ixgbe vector mode not working. Thread-Index: AQHQUJBNLVk7O7HBjk+sxYl37qBGDp0AvJVg Date: Wed, 25 Feb 2015 04:55:09 +0000 Message-ID: References: <20150224161609.15f590df@urahara> In-Reply-To: <20150224161609.15f590df@urahara> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] ixgbe vector mode not working. X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2015 05:00:06 -0000 Hi Stephen, I tried on the latest mater branch with testpmd. 2 rxq and 2 txq as below, vector pmd on both rx and tx. I can't reproduced = it. I checked your log, on tx side, it looks the tx vector haven't enabled. (it= shows vpmd on rx, spmd on tx). Would you help to share the below params in your app ? RX desc=3D128 - RX free threshold=3D32 TX desc=3D512 - TX free threshold=3D32 TX RS bit threshold=3D32 - TXQ flags=3D0xf01 As in your case which using 2 rxq and 1 txq, would you explain the traffic = flow between them. One thread polling packets from each rxq and send to the specified txq ? ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff00 -n 4 -- -i --coremask=3D= f000 --txfreet=3D32 --rxfreet=3D32 --txqflags=3D0xf01 --txrst=3D32 --rxq=3D= 2 --txq=3D2 --numa [...] Configuring Port 0 (socket 1) PMD: ixgbe_dev_tx_queue_setup(): sw_ring=3D0x7f99cace9ac0 hw_ring=3D0x7f99c= 9c3f480 dma_addr=3D0x1fdd83f480 PMD: set_tx_function(): Using simple tx code path PMD: set_tx_function(): Vector tx enabled. PMD: ixgbe_dev_tx_queue_setup(): sw_ring=3D0x7f99cace7980 hw_ring=3D0x7f99c= 9c4f480 dma_addr=3D0x1fdd84f480 PMD: set_tx_function(): Using simple tx code path PMD: set_tx_function(): Vector tx enabled. PMD: ixgbe_dev_rx_queue_setup(): sw_ring=3D0x7f99cace7100 hw_ring=3D0x7f99c= 9c5f480 dma_addr=3D0x1fdd85f480 PMD: ixgbe_dev_rx_queue_setup(): Rx Burst Bulk Alloc Preconditions are sati= sfied. Rx Burst Bulk Alloc function will be used on port=3D0, queue=3D0. PMD: ixgbe_dev_rx_queue_setup(): Vector rx enabled, please make sure RX bur= st size no less than 32. PMD: ixgbe_dev_rx_queue_setup(): sw_ring=3D0x7f99cace6880 hw_ring=3D0x7f99c= 9c6f500 dma_addr=3D0x1fdd86f500 PMD: ixgbe_dev_rx_queue_setup(): Rx Burst Bulk Alloc Preconditions are sati= sfied. Rx Burst Bulk Alloc function will be used on port=3D0, queue=3D1. PMD: ixgbe_dev_rx_queue_setup(): Vector rx enabled, please make sure RX bur= st size no less than 32. Port 0: 90:E2:BA:30:A0:75 Configuring Port 1 (socket 1) PMD: ixgbe_dev_tx_queue_setup(): sw_ring=3D0x7f99cace4540 hw_ring=3D0x7f99c= 9c7f580 dma_addr=3D0x1fdd87f580 PMD: set_tx_function(): Using simple tx code path PMD: set_tx_function(): Vector tx enabled. PMD: ixgbe_dev_tx_queue_setup(): sw_ring=3D0x7f99cace2400 hw_ring=3D0x7f99c= 9c8f580 dma_addr=3D0x1fdd88f580 PMD: set_tx_function(): Using simple tx code path PMD: set_tx_function(): Vector tx enabled. PMD: ixgbe_dev_rx_queue_setup(): sw_ring=3D0x7f99cace1b80 hw_ring=3D0x7f99c= 9c9f580 dma_addr=3D0x1fdd89f580 PMD: ixgbe_dev_rx_queue_setup(): Rx Burst Bulk Alloc Preconditions are sati= sfied. Rx Burst Bulk Alloc function will be used on port=3D1, queue=3D0. PMD: ixgbe_dev_rx_queue_setup(): Vector rx enabled, please make sure RX bur= st size no less than 32. PMD: ixgbe_dev_rx_queue_setup(): sw_ring=3D0x7f99cace1300 hw_ring=3D0x7f99c= 9caf600 dma_addr=3D0x1fdd8af600 PMD: ixgbe_dev_rx_queue_setup(): Rx Burst Bulk Alloc Preconditions are sati= sfied. Rx Burst Bulk Alloc function will be used on port=3D1, queue=3D1. PMD: ixgbe_dev_rx_queue_setup(): Vector rx enabled, please make sure RX bur= st size no less than 32. Port 1: 90:E2:BA:06:90:59 Checking link statuses... Port 0 Link Up - speed 10000 Mbps - full-duplex Port 1 Link Up - speed 10000 Mbps - full-duplex Done testpmd> show config rxtx io packet forwarding - CRC stripping disabled - packets/burst=3D32 nb forwarding cores=3D4 - nb forwarding ports=3D2 RX queues=3D2 - RX desc=3D128 - RX free threshold=3D32 RX threshold registers: pthresh=3D8 hthresh=3D8 wthresh=3D0 TX queues=3D2 - TX desc=3D512 - TX free threshold=3D32 TX threshold registers: pthresh=3D32 hthresh=3D0 wthresh=3D0 TX RS bit threshold=3D32 - TXQ flags=3D0xf01 -Cunming > -----Original Message----- > From: Stephen Hemminger [mailto:stephen@networkplumber.org] > Sent: Wednesday, February 25, 2015 8:16 AM > To: Nemeth, Balazs; Richardson, Bruce; Liang, Cunming; Neil Horman > Cc: dev@dpdk.org > Subject: ixgbe vector mode not working. >=20 > The ixgbe driver (from 1.8 or 2.0) works fine in normal (non-vectored) mo= de. > But when vector mode is enabled, it gets a few packets through then hangs= . > We use 2 Rx queues and 1 Tx queue per interface. >=20 > Devices: > 01:00.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP= + > Network Connection (rev 01) > 02:00.0 Ethernet controller: Intel Corporation Ethernet Controller 10-Gig= abit X540- > AT2 (rev 01) >=20 > Log: > EAL: probe driver: 8086:10fb rte_ixgbe_pmd > PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 17, SFP+: 5 > PMD: eth_ixgbe_dev_init(): port 0 vendorID=3D0x8086 deviceID=3D0x10fb > EAL: probe driver: 8086:1528 rte_ixgbe_pmd > PMD: eth_ixgbe_dev_init(): MAC: 4, PHY: 3 > PMD: eth_ixgbe_dev_init(): port 1 vendorID=3D0x8086 deviceID=3D0x1528 > [ 0.000043] DATAPLANE: Port 0 rte_ixgbe_pmd on socket 0 > [ 0.000053] DATAPLANE: Port 1 rte_ixgbe_pmd on socket 0 > [ 0.031638] PMD: ixgbe_dev_rx_queue_setup(): sw_ring=3D0x7fc5ac6a1b40 > hw_ring=3D0x7fc5ab548300 dma_addr=3D0x67348300 > [ 0.031647] PMD: ixgbe_dev_rx_queue_setup(): Rx Burst Bulk Alloc > Preconditions are satisfied. Rx Burst Bulk Alloc function will be used on= port=3D0, > queue=3D0. > [ 0.031653] PMD: ixgbe_dev_rx_queue_setup(): Vector rx enabled, please > make sure RX burst size no less than 32. > [ 0.031672] PMD: ixgbe_dev_rx_queue_setup(): sw_ring=3D0x7fc5ac6999c0 > hw_ring=3D0x7fc5ab558380 dma_addr=3D0x67358380 > [ 0.031680] PMD: ixgbe_dev_rx_queue_setup(): Rx Burst Bulk Alloc > Preconditions are satisfied. Rx Burst Bulk Alloc function will be used on= port=3D0, > queue=3D1. > [ 0.031695] PMD: ixgbe_dev_rx_queue_setup(): Vector rx enabled, please > make sure RX burst size no less than 32. > [ 0.031708] PMD: ixgbe_dev_tx_queue_setup(): sw_ring=3D0x7fc5ac697880 > hw_ring=3D0x7fc5ab568400 dma_addr=3D0x67368400 > [ 0.035745] PMD: ixgbe_dev_rx_queue_setup(): sw_ring=3D0x7fc5ac684e00 > hw_ring=3D0x7fc5ab580480 dma_addr=3D0x67380480 > [ 0.035754] PMD: ixgbe_dev_rx_queue_setup(): Rx Burst Bulk Alloc > Preconditions are satisfied. Rx Burst Bulk Alloc function will be used on= port=3D1, > queue=3D0. > [ 0.035761] PMD: ixgbe_dev_rx_queue_setup(): Vector rx enabled, please > make sure RX burst size no less than 32. > [ 0.035783] PMD: ixgbe_dev_rx_queue_setup(): sw_ring=3D0x7fc5ac67cc80 > hw_ring=3D0x7fc5ab590500 dma_addr=3D0x67390500 > [ 0.035792] PMD: ixgbe_dev_rx_queue_setup(): Rx Burst Bulk Alloc > Preconditions are satisfied. Rx Burst Bulk Alloc function will be used on= port=3D1, > queue=3D1. > [ 0.035798] PMD: ixgbe_dev_rx_queue_setup(): Vector rx enabled, please > make sure RX burst size no less than 32. > [ 0.035810] PMD: ixgbe_dev_tx_queue_setup(): sw_ring=3D0x7fc5ac67ab40 > hw_ring=3D0x7fc5ab5a0580 dma_addr=3D0x673a0580 > [ 5.886027] PMD: ixgbe_dev_link_status_print(): Port 0: Link Down > [ 5.886064] PMD: ixgbe_dev_link_status_print(): Port 0: Link Up - spee= d 10000 > Mbps - full-duplex > [ 6.234150] PMD: ixgbe_dev_link_status_print(): Port 1: Link Up - spee= d 0 Mbps > - half-duplex > [ 6.234196] PMD: ixgbe_dev_link_status_print(): Port 1: Link Down > [ 6.886098] PMD: ixgbe_dev_link_status_print(): Port 0: Link Up - spee= d 10000 > Mbps - full-duplex > [ 10.234776] PMD: ixgbe_dev_link_status_print(): Port 1: Link Down > [ 11.818676] PMD: ixgbe_dev_link_status_print(): Port 1: Link Up - spee= d 10000 > Mbps - full-duplex > [ 12.818758] PMD: ixgbe_dev_link_status_print(): Port 1: Link Up - spee= d 10000 > Mbps - full-duplex >=20 > Application trace shows lots of packets, then everything stops.