From: Arvind Narayanan <webguru2688@gmail.com>
To: Yongseok Koh <yskoh@mellanox.com>
Cc: users <users@dpdk.org>
Subject: Re: [dpdk-users] Issue with mlx5_rxtx.c while calling rte_eth_tx_burst() in DPDK 18.11
Date: Sat, 4 May 2019 18:07:24 -0500 [thread overview]
Message-ID: <CAHJJQSUauDXVo64JnYCKJU+b1DBQgpD0mAm40vDor77VCtzsYg@mail.gmail.com> (raw)
In-Reply-To: <1B492CED-5816-4A43-B7DD-4EFA4F58631D@mellanox.com>
It passes __rte_mbuf_sanity_check. rte_mbuf_check() is not available in
dpdk 18.02.
I debugged when the assertion failed and double checked all the mbuf's
pkt_len and data_len. All seems fine.
Yes, in my case its simple, all mbufs are single segment.
Is there some bound on the number of tx calls we can do consecutively using
mlx5 driver?
Its like if I do a lot of tx calls consecutively (e.g. ~10 to 20 calls to
rte_eth_tx_burst() with each call sending out a burst of ~64 mbufs), I face
this problem otherwise I don't.
Thoughts?
Arvind
On Tue, Apr 23, 2019 at 6:45 PM Yongseok Koh <yskoh@mellanox.com> wrote:
>
> > On Apr 21, 2019, at 9:59 PM, Arvind Narayanan <webguru2688@gmail.com>
> wrote:
> >
> > I am running into a weird problem when using rte_eth_tx_burst() using
> mlx5
> > in dpdk 18.11, running on Ubuntu 18.04 LTS (using Mellanox Connect X5
> 100G
> > EN).
> >
> > Here is a simplified snippet.
> >
> > ==================
> > #define MAX_BATCHES 64
> > #define MAX_BURST_SIZE 64
> >
> > struct batch {
> > struct rte_mbuf *mbufs[MAX_BURST_SIZE]; // array of packets
> > int num_mbufs; // num of mbufs
> > int queue; // outgoing tx_queue
> > int port; // outgoing port
> > }
> >
> > struct batch * batches[MAX_BATCHES];
> >
> > /* dequeue a number of batches */
> > int batch_count = rte_ring_sc_dequeue_bulk(some_rte_ring, (void **)
> > &(batches), MAX_BATCHES, NULL);
> >
> > /* transmit out all pkts from every batch */
> > if (likely(batch_count > 0)) {
> > for (i = 0; i < batch_count; i++) {
> > ret = rte_eth_tx_burst(batches[i]->port, batches[i]->queue,
> (struct
> > rte_mbuf **) batches[i]->mbufs,
> > batches[i]->num_mbufs);
> > }
> > }
> >
> > ==================
> >
> > At rte_eth_tx_burst(), I keep getting an error saying:
> > myapp: /home/arvind/dpdk/drivers/net/mlx5/mlx5_rxtx.c:1652: uint16_t
> > txq_burst_empw(struct mlx5_txq_data *, struct rte_mbuf **, uint16_t):
> > Assertion `length == DATA_LEN(buf)' failed.
> > OR
> > myapp: /home/arvind/dpdk/drivers/net/mlx5/mlx5_rxtx.c:1609: uint16_t
> > txq_burst_empw(struct mlx5_txq_data *, struct rte_mbuf **, uint16_t):
> > Assertion `length == DATA_LEN(buf)' failed.
> >
> > I have debugged and ensured all the mbuf counts (at least in my code) are
> > good. All the memory references to the mbufs also look good. However, I
> am
> > not sure why Mellanox driver would complain.
> >
> > I have also tried to play with mlx5_rxtx.c by changing above lines to
> > something like
> > assert(length == pkts_n); // pkts_n is an argument passed to the func.
> > Didn't help.
> >
> > Any thoughts?
>
> Hi,
>
> Does your mbuf pass rte_mbuf_check()?
> That complaint is regarding mismatch between m->pkt_len and m->data_len.
> If the mbuf is single segment packet (m->nb_segs == 1, m->next == NULL),
> m->pkt_len should be same as m->data_len.
>
> That assert() ins't strictly needed in the txq_burst_empw() though.
>
>
> Thanks,
> Yongseok
next prev parent reply other threads:[~2019-05-04 23:07 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-22 4:59 Arvind Narayanan
2019-04-23 23:45 ` Yongseok Koh
2019-05-04 23:07 ` Arvind Narayanan [this message]
2019-05-08 9:26 ` Andrew Bainbridge
2019-05-08 13:03 ` Arvind Narayanan
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=CAHJJQSUauDXVo64JnYCKJU+b1DBQgpD0mAm40vDor77VCtzsYg@mail.gmail.com \
--to=webguru2688@gmail.com \
--cc=users@dpdk.org \
--cc=yskoh@mellanox.com \
/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).