DPDK usage discussions
 help / color / mirror / Atom feed
From: "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>
To: "vuonglv@viettel.com.vn" <vuonglv@viettel.com.vn>
Cc: "users@dpdk.org" <users@dpdk.org>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-users] [dpdk-dev] Rx Can't receive anymore packet after received 1.5	billion packet.
Date: Mon, 17 Jul 2017 10:31:14 +0000	[thread overview]
Message-ID: <3EB4FA525960D640B5BDFFD6A3D891267BA810FB@IRSMSX108.ger.corp.intel.com> (raw)
In-Reply-To: <e8c97997-f31b-d7dc-cff3-c078cf717f40@viettel.com.vn>



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of
> vuonglv@viettel.com.vn
> Sent: Monday, July 17, 2017 3:04 AM
> Cc: users@dpdk.org; dev@dpdk.org
> Subject: [dpdk-dev] Rx Can't receive anymore packet after received 1.5
> billion packet.
> 
> Hi DPDK team,
> Sorry when I send this email to both of group users and dev. But I have
> big problem: Rx core on my application can not receive anymore packet
> after I did the stress test to it (~1 day Rx core received ~ 1.5 billion
> packet). Rx core still alive but didn't receive any packet and didn't
> generate any log. Below is my system configuration:
> - OS: CentOS 7
> - Kernel: 3.10.0-514.16.1.el7.x86_64
> - Huge page: 32G: 16384 page 2M
> - NIC card: Intel 85299
> - DPDK version: 16.11
> - Architecture: Rx (lcore 1) received packet then queue to the ring
> ----- Worker (lcore 2) dequeue packet in the ring and free it (use
> rte_pktmbuf_free() function).
> - Mempool create: rte_pktmbuf_pool_create (
>                                           "rx_pool",                  /*
> name */
>                                           8192,                     /*
> number of elemements in the mbuf pool */
> 256,                                            /* Size of per-core
> object cache */
> 0,                                                 /* Size of
> application private are between rte_mbuf struct and data buffer */
>                                           RTE_MBUF_DEFAULT_BUF_SIZE, /*
> Size of data buffer in each mbuf (2048 + 128)*/
> 0                                                   /* socket id */
>                              );
> If I change "number of elemements in the mbuf pool" from 8192 to 512, Rx
> have same problem after shorter time (~ 30s).
> 
> Please tell me if you need more information. I am looking forward to
> hearing from you.
> 
> 
> Many thanks,
> Vuong Le

Hi Vuong,

This is likely to be a buffer leakage problem. You might have a path in your code where you are not freeing a buffer and therefore this buffer gets "lost", as the application is not able to use this buffer any more since it is not returned back to the pool, so the pool of free buffers shrinks over time up to the moment when it eventually becomes empty, so no more packets can be received.

You might want to periodically monitor the numbers of free buffers in your pool; if this is the root cause, then you should be able to see this number constantly decreasing until it becomes flat zero, otherwise you should be able to the number of free buffers oscillating around an equilibrium point.

Since it takes a relatively big number of packets to get to this issue, it is likely that the code path that has this problem is not executed very frequently: it might be a control plane packet that is not freed up, or an ARP request/reply pkt, etc.

Regards,
Cristian

  reply	other threads:[~2017-07-17 10:31 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-18 12:23 [dpdk-users] Defining multiple actions based on a field value for the same table lookup in ip_pipeline application Nidhia Varghese
2017-05-18 14:04 ` [dpdk-users] [dpdk-dev] " Shyam Shrivastav
2017-05-19  5:23   ` Nidhia Varghese
2017-05-19  5:37     ` Shyam Shrivastav
2017-07-17  2:03   ` [dpdk-users] Rx Can't receive anymore packet after received 1.5 billion packet vuonglv
2017-07-17 10:31     ` Dumitrescu, Cristian [this message]
2017-07-18  1:36       ` [dpdk-users] [dpdk-dev] " vuonglv
2017-07-19 18:43         ` Dumitrescu, Cristian
2017-07-21 10:49           ` vuonglv

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=3EB4FA525960D640B5BDFFD6A3D891267BA810FB@IRSMSX108.ger.corp.intel.com \
    --to=cristian.dumitrescu@intel.com \
    --cc=dev@dpdk.org \
    --cc=users@dpdk.org \
    --cc=vuonglv@viettel.com.vn \
    /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).