From: Thomas Monjalon <thomas@monjalon.net>
To: David Marchand <david.marchand@redhat.com>
Cc: dev@dpdk.org, ferruh.yigit@intel.com,
Wenzhuo Lu <wenzhuo.lu@intel.com>,
Jingjing Wu <jingjing.wu@intel.com>,
Bernard Iremonger <bernard.iremonger@intel.com>
Subject: Re: [dpdk-dev] [PATCH] app/testpmd: reduce memory consumption
Date: Thu, 21 Nov 2019 22:55:34 +0100 [thread overview]
Message-ID: <1777736.27kYGzxk74@xps> (raw)
In-Reply-To: <16929516.SoWFOtNGnN@xps>
21/11/2019 22:25, Thomas Monjalon:
> 21/11/2019 16:12, David Marchand:
> > Following [1], testpmd memory consumption has skyrocketted.
> > The rte_port structure has gotten quite fat.
> >
> > struct rte_port {
> > [...]
> > struct rte_eth_rxconf rx_conf[65536]; /* 266280 3145728 */
> > /* --- cacheline 53312 boundary (3411968 bytes) was 40 bytes ago --- */
> > struct rte_eth_txconf tx_conf[65536]; /* 3412008 3670016 */
> > /* --- cacheline 110656 boundary (7081984 bytes) was 40 bytes ago --- */
> > [...]
> > /* size: 8654936, cachelines: 135234, members: 31 */
> > [...]
> >
> > testpmd handles RTE_MAX_ETHPORTS ports (32 by default) which means that it
> > needs ~256MB just for this internal representation.
> >
> > The reason is that a testpmd rte_port (the name is quite confusing, as
> > it is a local type) maintains configurations for all queues of a port.
> > But where you would expect testpmd to use RTE_MAX_QUEUES_PER_PORT as the
> > maximum queue count, the rte_port uses MAX_QUEUE_ID set to 64k.
> >
> > Prefer the ethdev maximum value.
> >
> > After this patch:
> > struct rte_port {
> > [...]
> > struct rte_eth_rxconf rx_conf[1025]; /* 8240 49200 */
> > /* --- cacheline 897 boundary (57408 bytes) was 32 bytes ago --- */
> > struct rte_eth_txconf tx_conf[1025]; /* 57440 57400 */
> > /* --- cacheline 1794 boundary (114816 bytes) was 24 bytes ago --- */
> > [...]
> > /* size: 139488, cachelines: 2180, members: 31 */
> > [...]
> >
> > [1]: https://git.dpdk.org/dpdk/commit/?id=436b3a6b6e62
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
>
> Acked-by: Thomas Monjalon <thomas@monjalon.net>
>
> I was really concerned by the memory requirement increase
> due to my patch on ethdev structs.
> Thank you for finding these giant arrays.
After testing this patch, I realized that you can decrease
the memory requirement of test-null.sh from 150 (300 in patch [1])
to only 20 MB.
The following patch [1] was workarounding the big memory requirement
by increasing the allocated memory to 300 MB.
[1] https://patches.dpdk.org/patch/63151/
next prev parent reply other threads:[~2019-11-21 21:55 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-21 15:12 [dpdk-dev] [PATCH] app/testpmd: reduce memory consumption David Marchand
2019-11-21 15:36 ` Ferruh Yigit
2019-11-21 16:17 ` David Marchand
2019-11-21 16:23 ` David Marchand
2019-11-21 21:22 ` Thomas Monjalon
2019-11-21 16:45 ` Stephen Hemminger
2019-11-21 20:32 ` David Marchand
2019-11-21 21:25 ` Thomas Monjalon
2019-11-21 21:55 ` Thomas Monjalon [this message]
2019-11-22 10:43 ` [dpdk-dev] [PATCH v2] " David Marchand
2019-11-22 12:24 ` Ferruh Yigit
2019-11-22 13:12 ` Thomas Monjalon
2019-11-22 13:14 ` Ferruh Yigit
2019-11-22 13:48 ` [dpdk-dev] [PATCH] devtools: disable automatic probing in null testing Thomas Monjalon
2019-11-22 13:56 ` Ferruh Yigit
2019-11-22 15:56 ` David Marchand
2019-11-24 22:52 ` Thomas Monjalon
2019-11-22 14:03 ` Gaëtan Rivet
2019-11-22 14:36 ` Thomas Monjalon
2019-11-22 14:14 ` [dpdk-dev] [PATCH v2] app/testpmd: reduce memory consumption Ferruh Yigit
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=1777736.27kYGzxk74@xps \
--to=thomas@monjalon.net \
--cc=bernard.iremonger@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=jingjing.wu@intel.com \
--cc=wenzhuo.lu@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.