From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5002445711 for ; Thu, 1 Aug 2024 14:24:16 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2B17C40DF8; Thu, 1 Aug 2024 14:24:16 +0200 (CEST) Received: from agw.arknetworks.am (agw.arknetworks.am [79.141.165.80]) by mails.dpdk.org (Postfix) with ESMTP id 23F3140B9E for ; Thu, 1 Aug 2024 14:24:15 +0200 (CEST) Received: from debian (unknown [78.109.69.217]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by agw.arknetworks.am (Postfix) with ESMTPSA id 8A77DE0AA6; Thu, 1 Aug 2024 16:24:14 +0400 (+04) DKIM-Filter: OpenDKIM Filter v2.11.0 agw.arknetworks.am 8A77DE0AA6 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arknetworks.am; s=default; t=1722515054; bh=68A2hldqzRHX9hfx8i6WOG/52a+HBJywBk/ui8W8bXk=; h=Date:From:To:cc:Subject:In-Reply-To:References:From; b=w9UjvHpIZ1j++bgYp0ZONjVQU2BO+wqNQaecZAreb+vLYWhRvn+zTDjCFU1afZfgt iOZM3HfWh3Nbf4QiQTOHYnGYRdmDIQEUnEzTWzVo1wjOcFKcd8PEOBJmr+SGBeYfpb bED5y4jdSj5PPi1eJX13Z/+feFWPsd/OzWrXjGWSit35zhjC9e+VcuwwCMtmkJkYu+ 8kIm9dQiIBKA8ksWCH8OMrS5RFxgCFaOetQsDA+mABjJoswJYafNvXnJI74jfOff2n /4cUbUCJP/8viVq2FHr2lKEkP1AUATEBcA9hFHeqWiuSz5hmdzz6CX4uqTl3bt7BuN ckGjPrtHLIkEA== Date: Thu, 1 Aug 2024 16:24:02 +0400 (+04) From: Ivan Malov To: Fabio Fernandes cc: "users@dpdk.org" Subject: Re: Net/igc's rte_eth_rx_burst() never returns packets In-Reply-To: <5jKmwafSy2RfedLIHaadgTlzh5tDDHJLt0txbxs1H1CFXTCO8sMJXhZGYSB-5jOmJsK2xaaXiRHB9aZgLiXl6adm0QdycOY7QNkas0XMcK8=@proton.me> Message-ID: References: <5jKmwafSy2RfedLIHaadgTlzh5tDDHJLt0txbxs1H1CFXTCO8sMJXhZGYSB-5jOmJsK2xaaXiRHB9aZgLiXl6adm0QdycOY7QNkas0XMcK8=@proton.me> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="8323328-1436853069-1722515051=:6529" X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323328-1436853069-1722515051=:6529 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8BIT Hi Fabio, Have you tried to specify EAL option --log-level="pmd.net.igc,debug" or --log-level='.*',8 when running the application? Perhaps doing so can trigger printouts [1], [2]. See if you can't observe those. Perhaps consider posting a brief excerpt of your code where rte_eth_rx_burst() is invoked and return value is verified. Also, albeit unrelated, it's rather peculiar that the code does CPU-to-LE conversion [3] of descriptor status, but the field itslef is declared as __le32 already: [4]. [1] https://github.com/DPDK/dpdk/blob/v24.03/drivers/net/igc/igc_txrx.c#L296 [2] https://github.com/DPDK/dpdk/blob/v24.03/drivers/net/igc/igc_txrx.c#L455 [3] https://github.com/DPDK/dpdk/blob/v24.03/drivers/net/igc/igc_txrx.c#L264 [4] https://github.com/DPDK/dpdk/blob/v24.03/drivers/net/igc/base/igc_base.h#L109 Thank you. On Thu, 1 Aug 2024, Fabio Fernandes wrote: > > Hi,  > > I have an issue with rte_eth_rx_burst() for IGC poll mode driver never returning any packets and need some advice. > I have this network port: > 09:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03) > > Bound to igb_uio: > Network devices using DPDK-compatible driver > ============================================ > 0000:09:00.0 'Ethernet Controller I225-V 15f3' drv=igb_uio unused=igc > > I'm testing this both with testpmd and my own app, which works fine with other drivers such as net/ena and net/i40e. I'm using single RX/TX queue pair with default configs > with rte_eth_promiscuous_enable() and rte_eth_allmulticast_enable(). > > The device seems to rte_eth_dev_start() fine, and rte_eth_stats_get() seem to be detecting inbound packets. Below is the output from testpmd: > > Press enter to exiteth_igc_interrupt_action():  Port 0: Link Up - speed 1000 Mbps - full-duplex > > Port 0: link state change event > ^CTelling cores to stop... > Waiting for lcores to finish... > >   ---------------------- Forward statistics for port 0  ---------------------- >   RX-packets: 129            RX-dropped: 800           RX-total: 929 >   TX-packets: 0              TX-dropped: 0             TX-total: 0 >   ---------------------------------------------------------------------------- > >   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++ >   RX-packets: 129            RX-dropped: 800           RX-total: 929 >   TX-packets: 0              TX-dropped: 0             TX-total: 0 >   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > Done. > > > However, rte_eth_rx_burst() never returns anything, neither in testpmd nor in my own app. > > In my own app, I log both rte_eth_stats_get() and non-zero xstats from rte_eth_xstats_get_by_id(): > > 07:02:13.406873186 INF stats.rx                                : 0 > 07:02:13.406892616 INF dev_stats.ipackets                      : 78 > 07:02:13.406903636 INF dev_stats.opackets                      : 0 > 07:02:13.406914166 INF dev_stats.imissed                       : 0 > 07:02:13.406924536 INF dev_stats.ierrors                       : 0 > 07:02:13.406934116 INF dev_stats.oerrors                       : 0 > 07:02:13.406943956 INF dev_stats.rx_nombuf                     : 0 > 07:02:13.407247777 INF xstats rx_good_packets                  : 78 > 07:02:13.407257147 INF xstats rx_good_bytes                    : 17205 > 07:02:13.407265267 INF xstats rx_size_64_packets               : 6 > 07:02:13.407274627 INF xstats rx_size_65_to_127_packets        : 31 > 07:02:13.407285757 INF xstats rx_size_128_to_255_packets       : 22 > 07:02:13.407297537 INF xstats rx_size_256_to_511_packets       : 16 > 07:02:13.407309127 INF xstats rx_size_512_to_1023_packets      : 3 > 07:02:13.407321327 INF xstats rx_broadcast_packets             : 8 > 07:02:13.407331597 INF xstats rx_multicast_packets             : 64 > 07:02:13.407346357 INF xstats rx_total_packets                 : 78 > 07:02:13.407355547 INF xstats rx_total_bytes                   : 17205 > 07:02:13.407364127 INF xstats rx_sent_to_host_packets          : 78 > 07:02:13.407375347 INF xstats interrupt_assert_count           : 1 > > > Still, rte_eth_rx_burst() never returns anything.  > > It's worthwhile to note that rte_eth_rx_burst() works fine when I, instead of net/igc, use net/ena (with ENA card) or net/i40e (Intel x710 card). > > The debug log from EAL and net/igc is attached, in case that helps. > There's a warning "igc_rx_init(): forcing scatter mode", but I've already tried changing my mbuf sizes so that the warning goes away but that also didn't help. > > Any advice? > > Thanks, > Fabio > > > --8323328-1436853069-1722515051=:6529--