[dpdk-dev] [Bug 749] mlx5: ConnectX-6 not all missed packets accounted for when using large maximum packet size

bugzilla at dpdk.org bugzilla at dpdk.org
Fri Jul 2 10:43:15 CEST 2021


https://bugs.dpdk.org/show_bug.cgi?id=749

            Bug ID: 749
           Summary: mlx5: ConnectX-6 not all missed packets accounted for
                    when using large maximum packet size
           Product: DPDK
           Version: unspecified
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: ethdev
          Assignee: dev at dpdk.org
          Reporter: martin.weiser at allegro-packets.com
  Target Milestone: ---

Version: 21.05 (which is not available in the Bugzilla version field)

When testing with ConnectX-6 we recently became aware that a lot of missed
packets did not show up in the statistics.
After some further testing it looks like this is somehow related to using a
large maximum packet size (which I believe
makes the driver use a different scatter-gather receive path).

The following testpmd invocations can be used to demonstrate this behavior.


First an example for a "normal" run without the large maximum packet size:

  ./app/dpdk-testpmd -a c1:00.0 -a c1:00.1 -n 4 --legacy-mem --
--total-num-mbufs=2000000 --rx-offloads=0x2800 --mbuf-size=2331 --rxd=4096

The xstats for one port look like this:

  rx_good_packets: 540138902
  tx_good_packets: 537739805
  rx_good_bytes: 298771912199
  tx_good_bytes: 171950534158
  rx_missed_errors: 572790
  rx_errors: 0
  tx_errors: 0
  rx_mbuf_allocation_errors: 0
  rx_q0_packets: 540138902
  rx_q0_bytes: 298771912199
  rx_q0_errors: 0
  tx_q0_packets: 537739805
  tx_q0_bytes: 171950534158
  rx_wqe_errors: 0
  rx_unicast_packets: 540711692
  rx_unicast_bytes: 301254119575
  tx_unicast_packets: 537739805
  tx_unicast_bytes: 171950534158
  rx_multicast_packets: 0
  rx_multicast_bytes: 0
  tx_multicast_packets: 0
  tx_multicast_bytes: 0
  rx_broadcast_packets: 0
  rx_broadcast_bytes: 0
  tx_broadcast_packets: 0
  tx_broadcast_bytes: 0
  tx_phy_packets: 537739805
  rx_phy_packets: 540719221
  rx_phy_crc_errors: 0
  tx_phy_bytes: 174101493378
  rx_phy_bytes: 301258662491
  rx_phy_in_range_len_errors: 0
  rx_phy_symbol_errors: 0
  rx_phy_discard_packets: 7529
  tx_phy_discard_packets: 0
  tx_phy_errors: 0
  rx_out_of_buffer: 0
  tx_pp_missed_interrupt_errors: 0
  tx_pp_rearm_queue_errors: 0
  tx_pp_clock_queue_errors: 0
  tx_pp_timestamp_past_errors: 0
  tx_pp_timestamp_future_errors: 0
  tx_pp_jitter: 0
  tx_pp_wander: 0
  tx_pp_sync_lost: 0

For this particular testcase the sum of rx_good_packets, rx_missed_errors and
rx_phy_discard_packets is always
the expected total packet count of 540719221.


If however testpmd is invoked like this:

  ./app/dpdk-testpmd -a c1:00.0 -a c1:00.1 -n 4 --legacy-mem --
--total-num-mbufs=2000000 --max-pkt-len=15360 --rx-offloads=0x2800
--mbuf-size=2331 --rxd=4096

The xstats after the testcase run look like this:

  rx_good_packets: 521670616
  tx_good_packets: 522641593
  rx_good_bytes: 288980135079
  tx_good_bytes: 167591285708
  rx_missed_errors: 879662
  rx_errors: 0
  tx_errors: 0
  rx_mbuf_allocation_errors: 0
  rx_q0_packets: 521670616
  rx_q0_bytes: 288980135079
  rx_q0_errors: 0
  tx_q0_packets: 522641593
  tx_q0_bytes: 167591285708
  rx_wqe_errors: 0
  rx_unicast_packets: 522550278
  rx_unicast_bytes: 291559156800
  tx_unicast_packets: 522641593
  tx_unicast_bytes: 167591285708
  rx_multicast_packets: 0
  rx_multicast_bytes: 0
  tx_multicast_packets: 0
  tx_multicast_bytes: 0
  rx_broadcast_packets: 0
  rx_broadcast_bytes: 0
  tx_broadcast_packets: 0
  tx_broadcast_bytes: 0
  tx_phy_packets: 522641593
  rx_phy_packets: 540719221
  rx_phy_crc_errors: 0
  tx_phy_bytes: 169681852080
  rx_phy_bytes: 301258662491
  rx_phy_in_range_len_errors: 0
  rx_phy_symbol_errors: 0
  rx_phy_discard_packets: 30665
  tx_phy_discard_packets: 0
  tx_phy_errors: 0
  rx_out_of_buffer: 0
  tx_pp_missed_interrupt_errors: 0
  tx_pp_rearm_queue_errors: 0
  tx_pp_clock_queue_errors: 0
  tx_pp_timestamp_past_errors: 0
  tx_pp_timestamp_future_errors: 0
  tx_pp_jitter: 0
  tx_pp_wander: 0
  tx_pp_sync_lost: 0

The rx_good_packets, rx_missed_errors and rx_phy_discard_packets counters never
sum up to the expected packet
count:

  521670616 + 879662 + 30665 = 522580943
  540719221 - 522580943 = 18138278 (packets not accounted for)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the dev mailing list