From: "Lombardo, Ed" <Ed.Lombardo@netscout.com>
To: Cliff Burdick <shaklee3@gmail.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>,
"users@dpdk.org" <users@dpdk.org>
Subject: RE: How to increase mbuf size in dpdk version 17.11
Date: Wed, 2 Mar 2022 14:20:13 +0000 [thread overview]
Message-ID: <SJ0PR01MB63997B76E2286016CF1E38978F039@SJ0PR01MB6399.prod.exchangelabs.com> (raw)
In-Reply-To: <CA+Gp1nZueA3uM5xVFU8+mazSHSOhB8ZbKo04xZgP_s-2O9nB+A@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 7742 bytes --]
Hi,
When I return to 2K mbuf size the /proc/meminfo hugepage info looks exactly the same.
HugePages_Total: 1024
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
I did not make any changes to the arguments to rte_eal_init() when I tried 16K mbuf configuration.
From: Cliff Burdick <shaklee3@gmail.com>
Sent: Tuesday, March 1, 2022 10:57 PM
To: Lombardo, Ed <Ed.Lombardo@netscout.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>; users@dpdk.org
Subject: Re: How to increase mbuf size in dpdk version 17.11
External Email: This message originated outside of NETSCOUT. Do not click links or open attachments unless you recognize the sender and know the content is safe.
That's showing you have 0 hugepages free. Maybe they weren't passed through to the VM properly?
On Tue, Mar 1, 2022 at 7:50 PM Lombardo, Ed <Ed.Lombardo@netscout.com<mailto:Ed.Lombardo@netscout.com>> wrote:
[root@vSTREAM_632 ~]# cat /proc/meminfo
MemTotal: 32778372 kB
MemFree: 15724124 kB
MemAvailable: 15897392 kB
Buffers: 18384 kB
Cached: 526768 kB
SwapCached: 0 kB
Active: 355140 kB
Inactive: 173360 kB
Active(anon): 62472 kB
Inactive(anon): 12484 kB
Active(file): 292668 kB
Inactive(file): 160876 kB
Unevictable: 13998696 kB
Mlocked: 13998696 kB
SwapTotal: 3906556 kB
SwapFree: 3906556 kB
Dirty: 76 kB
Writeback: 0 kB
AnonPages: 13986156 kB
Mapped: 95500 kB
Shmem: 16864 kB
Slab: 121952 kB
SReclaimable: 71128 kB
SUnreclaim: 50824 kB
KernelStack: 4608 kB
PageTables: 31524 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 19247164 kB
Committed_AS: 14170424 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 212012 kB
VmallocChunk: 34342301692 kB
Percpu: 2816 kB
HardwareCorrupted: 0 kB
AnonHugePages: 13228032 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 1024
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 104320 kB
DirectMap2M: 33449984 kB
From: Cliff Burdick <shaklee3@gmail.com<mailto:shaklee3@gmail.com>>
Sent: Tuesday, March 1, 2022 10:45 PM
To: Lombardo, Ed <Ed.Lombardo@netscout.com<mailto:Ed.Lombardo@netscout.com>>
Cc: Stephen Hemminger <stephen@networkplumber.org<mailto:stephen@networkplumber.org>>; users@dpdk.org<mailto:users@dpdk.org>
Subject: Re: How to increase mbuf size in dpdk version 17.11
External Email: This message originated outside of NETSCOUT. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Can you paste the output of "cat /proc/meminfo"?
On Tue, Mar 1, 2022 at 5:37 PM Lombardo, Ed <Ed.Lombardo@netscout.com<mailto:Ed.Lombardo@netscout.com>> wrote:
Here is the output from rte_mempool_dump() after creating the mbuf " mbuf_pool_create (mbuf_seg_size=16512, nb_mbuf=32768, socket_id=0)":
nb_mbuf_per_pool = 32768
mb_size = 16640
16512 * 32768 = 541,065,216
mempool <mbuf_pool_socket_0>@0x17f811400
flags=10
pool=0x17f791180
iova=0x80fe11400
nb_mem_chunks=1
size=32768
populated_size=32768
header_size=64
elt_size=16640
trailer_size=0
total_obj_size=16704
private_data_size=64
avg bytes/object=16704.000000
internal cache infos:
cache_size=250
cache_count[0]=0
...
cache_count[126]=0
cache_count[127]=0
total_cache_count=0
common_pool_count=32768
no statistics available
-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org<mailto:stephen@networkplumber.org>>
Sent: Tuesday, March 1, 2022 5:46 PM
To: Cliff Burdick <shaklee3@gmail.com<mailto:shaklee3@gmail.com>>
Cc: Lombardo, Ed <Ed.Lombardo@netscout.com<mailto:Ed.Lombardo@netscout.com>>; users@dpdk.org<mailto:users@dpdk.org>
Subject: Re: How to increase mbuf size in dpdk version 17.11
External Email: This message originated outside of NETSCOUT. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On Tue, 1 Mar 2022 13:37:07 -0800
Cliff Burdick <shaklee3@gmail.com<mailto:shaklee3@gmail.com>> wrote:
> Can you verify how many buffers you're allocating? I don't see how
> many you're allocating in this thread.
>
> On Tue, Mar 1, 2022 at 1:30 PM Lombardo, Ed <Ed.Lombardo@netscout.com<mailto:Ed.Lombardo@netscout.com>>
> wrote:
>
> > Hi Stephen,
> > The VM is configured to have 32 GB of memory.
> > Will dpdk consume the 2GB of hugepage memory for the mbufs?
> > I don't mind having less mbufs with mbuf size of 16K vs original
> > mbuf size of 2K.
> >
> > Thanks,
> > Ed
> >
> > -----Original Message-----
> > From: Stephen Hemminger <stephen@networkplumber.org<mailto:stephen@networkplumber.org>>
> > Sent: Tuesday, March 1, 2022 2:57 PM
> > To: Lombardo, Ed <Ed.Lombardo@netscout.com<mailto:Ed.Lombardo@netscout.com>>
> > Cc: users@dpdk.org<mailto:users@dpdk.org>
> > Subject: Re: How to increase mbuf size in dpdk version 17.11
> >
> > External Email: This message originated outside of NETSCOUT. Do not
> > click links or open attachments unless you recognize the sender and
> > know the content is safe.
> >
> > On Tue, 1 Mar 2022 18:34:22 +0000
> > "Lombardo, Ed" <Ed.Lombardo@netscout.com<mailto:Ed.Lombardo@netscout.com>> wrote:
> >
> > > Hi,
> > > I have an application built with dpdk 17.11.
> > > During initialization I want to change the mbuf size from 2K to 16K.
> > > I want to receive packet sizes of 8K or more in one mbuf.
> > >
> > > The VM running the application is configured to have 2G hugepages.
> > >
> > > I tried many things and I get an error when a packet arrives.
> > >
> > > I read online that there is #define DEFAULT_MBUF_DATA_SIZE that I
> > changed from 2176 to ((2048*8)+128), where 128 is for headroom.
> > > The call to rte_pktmbuf_pool_create() returns success with my changes.
> > > From the rte_mempool_dump() - "rx_nombuf" - Total number of Rx
> > > mbuf
> > allocation failures. This value increments each time a packet arrives.
> > >
> > > Is there any reference document explaining what causes this error?
> > > Is there a user guide I should follow to make the mbuf size
> > > change,
> > starting with the hugepage value?
> > >
> > > Thanks,
> > > Ed
> >
> > Did you check that you have enough memory in the system for the
> > larger footprint?
> > Using 16K per mbuf is going to cause lots of memory to be consumed.
A little maths you can fill in your own values.
Assuming you want 16K of data.
You need at a minimum [1]
num_rxq := total number of receive queues
num_rxd := number of receive descriptors per receive queue
num_txq := total number of transmit queues (assume all can be full)
num_txd := number of transmit descriptors
num_mbufs = num_rxq * num_rxd + num_txq * num_txd + num_cores * burst_size
Assuming you are using code copy/pasted from some example like l3fwd.
With 4 Rxq
num_mbufs = 4 * 1024 + 4 * 1024 + 4 * 32 = 8320
Each mbuf element requires [2]
elt_size = sizeof(struct rte_mbuf) + HEADROOM + mbuf_size
= 128 + 128 + 16K = 16640
obj_size = rte_mempool_calc_obj_size(elt_size, 0, NULL)
= 16832
So total pool is
num_mbufs * obj_size = 8320 * 16832 = 140,042,240 ~ 139M
[1] Some devices line bnxt need multiple buffers per packet.
[2] Often applications want additional space per mbuf for meta-data.
[-- Attachment #2: Type: text/html, Size: 20491 bytes --]
prev parent reply other threads:[~2022-03-02 14:20 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-01 18:34 Lombardo, Ed
2022-03-01 19:56 ` Stephen Hemminger
2022-03-01 21:30 ` Lombardo, Ed
2022-03-01 21:37 ` Cliff Burdick
2022-03-01 22:46 ` Stephen Hemminger
2022-03-02 1:37 ` Lombardo, Ed
2022-03-02 3:45 ` Cliff Burdick
2022-03-02 3:50 ` Lombardo, Ed
2022-03-02 3:56 ` Cliff Burdick
2022-03-02 4:40 ` Stephen Hemminger
2022-03-02 5:48 ` Lombardo, Ed
2022-03-02 14:47 ` Cliff Burdick
2022-03-02 14:20 ` Lombardo, Ed [this message]
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=SJ0PR01MB63997B76E2286016CF1E38978F039@SJ0PR01MB6399.prod.exchangelabs.com \
--to=ed.lombardo@netscout.com \
--cc=shaklee3@gmail.com \
--cc=stephen@networkplumber.org \
--cc=users@dpdk.org \
/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).