DPDK usage discussions
 help / color / mirror / Atom feed
From: Ivan Malov <ivan.malov@arknetworks.am>
To: Fabio Fernandes <boicotinho@proton.me>
Cc: "users@dpdk.org" <users@dpdk.org>
Subject: Re: Net/igc's rte_eth_rx_burst() never returns packets
Date: Thu, 1 Aug 2024 16:24:02 +0400 (+04)	[thread overview]
Message-ID: <f4f5181c-d15a-4897-781c-2019f25587b4@arknetworks.am> (raw)
In-Reply-To: <5jKmwafSy2RfedLIHaadgTlzh5tDDHJLt0txbxs1H1CFXTCO8sMJXhZGYSB-5jOmJsK2xaaXiRHB9aZgLiXl6adm0QdycOY7QNkas0XMcK8=@proton.me>

[-- Attachment #1: Type: text/plain, Size: 4846 bytes --]

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
> 
> 
>

  reply	other threads:[~2024-08-01 12:24 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-01 10:26 Fabio Fernandes
2024-08-01 12:24 ` Ivan Malov [this message]
2024-08-01 17:40   ` Fabio Fernandes
2024-08-01 19:16     ` Ivan Malov
2024-08-02 12:57       ` Fabio Fernandes
2024-08-02 15:14         ` Ivan Malov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f4f5181c-d15a-4897-781c-2019f25587b4@arknetworks.am \
    --to=ivan.malov@arknetworks.am \
    --cc=boicotinho@proton.me \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).