Hi Dariusz,
Thanks for the reply.

I'm using 68  byte UDP packets with diverse SIP,DIPs, the traffic is
balanced between the cores (I included some logging below)

The flows and groups I have are

group 0: eth => jump group 2

group 2:  eth / ipv4 => rss to sw queues

group 2: eth => rss to sw queues (lower priority)

group 4: eth => random N => to sw queue 0

group 4: eth => drop (lower priority)


Group 4 is not actually referenced from anywhere, I assume this does not
affect performance.



2024-10-28 10:25:25  INFO: <0>  stats, ipackets:799741213,
opackets:799741213
2024-10-28 10:25:25  INFO: <0> flow 0x188195140 grp:pri 0:001 end end =>
jump jump 2/end end
2024-10-28 10:25:25  INFO: <0> flow 0x188174500 grp:pri 2:548 eth eth/ip4
ip4/end end => count count/rss rss 0-31/end end (799741213, 51183437632)
2024-10-28 10:25:25  INFO: <0> flow 0x1883d73c0 grp:pri 2:549 eth eth/end
end => count count/rss rss 0-31/end end (0, 0)
2024-10-28 10:25:25  INFO: <0> flow 0x1883b67c0 grp:pri 4:001 random
random/end end => rss rss 0-31/end end
2024-10-28 10:25:25  INFO: <0> flow 0x1883d7140 grp:pri 4:549 end end =>
drop drop/end end
2024-10-28 10:25:35  INFO: <0> flow 0x188195140 grp:pri 0:001 end end =>
jump jump 2/end end
2024-10-28 10:25:35  INFO: <0> flow 0x188174500 grp:pri 2:548 eth eth/ip4
ip4/end end => count count/rss rss 0-31/end end (799741213, 51183437632)
2024-10-28 10:25:35  INFO: <0> flow 0x1883d73c0 grp:pri 2:549 eth eth/end
end => count count/rss rss 0-31/end end (0, 0)
2024-10-28 10:25:35  INFO: <0> flow 0x1883b67c0 grp:pri 4:001 random
random/end end => rss rss 0-31/end end
2024-10-28 10:25:35  INFO: <0> flow 0x1883d7140 grp:pri 4:549 end end =>
drop drop/end end
2024-10-28 10:25:40  INFO: <0> xstats, rx_good_packets:799741213,
tx_good_packets:799741213, rx_good_bytes:51183437632,
tx_good_bytes:51183437632, rx_q0_packets:24987083, rx_q0_bytes:1599173312,
rx_q1_packets:24988480, rx_q1_bytes:1599262720, rx_q2_packets:24995304,
rx_q2_bytes:1599699456, rx_q3_packets:24998711, rx_q3_bytes:1599917504,
rx_q4_packets:24989350, rx_q4_bytes:1599318400, rx_q5_packets:24991546,
rx_q5_bytes:1599458944, rx_q6_packets:24991647, rx_q6_bytes:1599465408,
rx_q7_packets:24995441, rx_q7_bytes:1599708224, rx_q8_packets:24989564,
rx_q8_bytes:1599332096, rx_q9_packets:24990980, rx_q9_bytes:1599422720,
rx_q10_packets:24996265, rx_q10_bytes:1599760960, rx_q11_packets:24996320,
rx_q11_bytes:1599764480, rx_q12_packets:24987707, rx_q12_bytes:1599213248,
rx_q13_packets:24983936, rx_q13_bytes:1598971904, rx_q14_packets:24994621,
rx_q14_bytes:1599655744, rx_q15_packets:24991660, rx_q15_bytes:1599466240,
tx_q0_packets:24987083, tx_q0_bytes:1599173312, tx_q1_packets:24988480,
tx_q1_bytes:1599262720, tx_q2_packets:24995304, tx_q2_bytes:1599699456,
tx_q3_packets:24998711, tx_q3_bytes:1599917504, tx_q4_packets:24989350,
tx_q4_bytes:1599318400, tx_q5_packets:24991546, tx_q5_bytes:1599458944,
tx_q6_packets:24991647, tx_q6_bytes:1599465408, tx_q7_packets:24995441,
tx_q7_bytes:1599708224, tx_q8_packets:24989564, tx_q8_bytes:1599332096,
tx_q9_packets:24990980, tx_q9_bytes:1599422720, tx_q10_packets:24996265,
tx_q10_bytes:1599760960, tx_q11_packets:24996320, tx_q11_bytes:1599764480,
tx_q12_packets:24987707, tx_q12_bytes:1599213248, tx_q13_packets:24983936,
tx_q13_bytes:1598971904, tx_q14_packets:24994621, tx_q14_bytes:1599655744,
tx_q15_packets:24991660, tx_q15_bytes:1599466240,
rx_unicast_bytes:51183437632, rx_unicast_packets:799741213,
tx_unicast_bytes:51183437632, tx_unicast_packets:799741213,
tx_phy_packets:799741213, rx_phy_packets:1500000000,
rx_prio0_buf_discard_packets:700258787, tx_phy_bytes:54382402484,
rx_phy_bytes:102000000000
2024-10-28 10:25:40  INFO: <0>  stats, ipackets:799741213,
opackets:799741213
^C2024-10-28 10:25:42  INFO: forwarder13 exiting on core 21 n_rx_pkts:
24987707, n_sample_pkts: 0, max_rx_burst: 36, max_queue_depth: 30
2024-10-28 10:25:42  INFO: forwarder5 exiting on core 13 n_rx_pkts:
24989350, n_sample_pkts: 0, max_rx_burst: 34, max_queue_depth: 30
2024-10-28 10:25:42  INFO: forwarder8 exiting on core 16 n_rx_pkts:
24995441, n_sample_pkts: 0, max_rx_burst: 36, max_queue_depth: 36
2024-10-28 10:25:42  INFO: forwarder14 exiting on core 22 n_rx_pkts:
24983936, n_sample_pkts: 0, max_rx_burst: 36, max_queue_depth: 30
2024-10-28 10:25:42  INFO: forwarder19 exiting on core 27 n_rx_pkts:
24995349, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder4 exiting on core 12 n_rx_pkts:
24998711, n_sample_pkts: 0, max_rx_burst: 33, max_queue_depth: 33
2024-10-28 10:25:42  INFO: forwarder7 exiting on core 15 n_rx_pkts:
24991647, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder1 exiting on core 9 n_rx_pkts:
24987083, n_sample_pkts: 0, max_rx_burst: 32, max_queue_depth: 30
2024-10-28 10:25:42  INFO: forwarder11 exiting on core 19 n_rx_pkts:
24996265, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder15 exiting on core 23 n_rx_pkts:
24994621, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder10 exiting on core 18 n_rx_pkts:
24990980, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 32
2024-10-28 10:25:42  INFO: forwarder3 exiting on core 11 n_rx_pkts:
24995304, n_sample_pkts: 0, max_rx_burst: 25, max_queue_depth: 25
2024-10-28 10:25:42  INFO: forwarder2 exiting on core 10 n_rx_pkts:
24988480, n_sample_pkts: 0, max_rx_burst: 32, max_queue_depth: 30
2024-10-28 10:25:42  INFO: forwarder6 exiting on core 14 n_rx_pkts:
24991546, n_sample_pkts: 0, max_rx_burst: 34, max_queue_depth: 30
2024-10-28 10:25:42  INFO: forwarder12 exiting on core 20 n_rx_pkts:
24996320, n_sample_pkts: 0, max_rx_burst: 28, max_queue_depth: 28
2024-10-28 10:25:42  INFO: forwarder9 exiting on core 17 n_rx_pkts:
24989564, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder17 exiting on core 25 n_rx_pkts:
24986227, n_sample_pkts: 0, max_rx_burst: 36, max_queue_depth: 32
2024-10-28 10:25:42  INFO: forwarder20 exiting on core 28 n_rx_pkts:
24994610, n_sample_pkts: 0, max_rx_burst: 37, max_queue_depth: 35
2024-10-28 10:25:42  INFO: forwarder16 exiting on core 24 n_rx_pkts:
24991660, n_sample_pkts: 0, max_rx_burst: 34, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder26 exiting on core 34 n_rx_pkts:
24994289, n_sample_pkts: 0, max_rx_burst: 29, max_queue_depth: 24
2024-10-28 10:25:42  INFO: forwarder23 exiting on core 31 n_rx_pkts:
24986582, n_sample_pkts: 0, max_rx_burst: 34, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder22 exiting on core 30 n_rx_pkts:
24995067, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder21 exiting on core 29 n_rx_pkts:
24994793, n_sample_pkts: 0, max_rx_burst: 29, max_queue_depth: 23
2024-10-28 10:25:42  INFO: forwarder31 exiting on core 39 n_rx_pkts:
24993460, n_sample_pkts: 0, max_rx_burst: 26, max_queue_depth: 22
2024-10-28 10:25:42  INFO: forwarder29 exiting on core 37 n_rx_pkts:
24987219, n_sample_pkts: 0, max_rx_burst: 30, max_queue_depth: 30
2024-10-28 10:25:42  INFO: forwarder24 exiting on core 32 n_rx_pkts:
24986863, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder32 exiting on core 40 n_rx_pkts:
24991661, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 34
2024-10-28 10:25:42  INFO: forwarder18 exiting on core 26 n_rx_pkts:
24991276, n_sample_pkts: 0, max_rx_burst: 38, max_queue_depth: 36
2024-10-28 10:25:42  INFO: forwarder30 exiting on core 38 n_rx_pkts:
24989407, n_sample_pkts: 0, max_rx_burst: 30, max_queue_depth: 30
2024-10-28 10:25:42  INFO: forwarder25 exiting on core 33 n_rx_pkts:
24994537, n_sample_pkts: 0, max_rx_burst: 26, max_queue_depth: 22
2024-10-28 10:25:42  INFO: forwarder28 exiting on core 36 n_rx_pkts:
24996627, n_sample_pkts: 0, max_rx_burst: 26, max_queue_depth: 22
2024-10-28 10:25:42  INFO: forwarder27 exiting on core 35 n_rx_pkts:
24994631, n_sample_pkts: 0, max_rx_burst: 34, max_queue_depth: 32

On Fri, Oct 25, 2024 at 8:03 AM Dariusz Sosnowski <dsosnow...@nvidia.com>
wrote:

> Hi Tony,
>
> I apologize for the late response.
>
> > From: Tony Hart <tony.h...@domainhart.com>
> > Sent: Saturday, October 12, 2024 17:09
> > To: users@dpdk.org
> > Subject: mlx5: imissed versus prio0_buf_discards
> >
> > External email: Use caution opening links or attachments
> >
> >
> >
> > I have a simple DPDK app that receives packets via RSS from a CX7
> (400G).  The app uses 16 queues across 16 cores.  What I see is dropped
> packets even at only 50Mpps.
> >
> > Looking at rte_eth_port_xstats() I see  rx_prio0_buf_discard_packets
> matches the number of packets dropped however the imissed counter (from
> rte_eth_port_stats) is 0.  Indeed when I look at the rx_queue depths from
> each thread in the app they barely reach 30 entries (I'm using the default
> number of queue descs).
> >
> > What is the difference between rx_prio0_buf_discards and imissed
> counters, why would rx_prio0_buf_discards increase but not imissed?
>
> Both counters measure packet drops, but at different levels:
>
> - imissed - Measures drops caused by lack of free descriptors in the Rx
> queue.
>   This indicates that SW cannot keep up with current packet rate.
> - rx_prio0_buf_discards - Measures drops caused by lack of free space in
> NIC's Rx buffer.
>   This indicates that HW cannot keep up with current packet rate.
>
> What kind of traffic are you generating?
> What kind of flow tables and rules do you create?
> In your application, do you see that packets are roughly equally
> distributed across all 16 Rx queues?
>
> >
> > many thanks,
> > tony
> >
> > fyi: this is using DPKD 24.07 and the HWS RTE FLOW Api to setup the RSS
> flow.  Firmware is 28.41
>
> Best regards,
> Dariusz Sosnowski
>


-- 
tony

Reply via email to