[dpdk-users] Regarding changing RTE_RING_SZ_MASK to 0x7FFFFFFF

Venkatesh Nuthula venki497 at gmail.com
Mon Aug 14 20:01:38 CEST 2017

Hi all,

  I am a newbie to DPDK and in one of the applications I am building , I am
trying to capture more than 150M packets and save them to file. I noticed
that with packet count > 134M, the check 'count > RTE_RING_SZ_MASK' fails
as RTE_RING_SZ_MASK is set to 0x0FFFFFFF. So I tried changing
RTE_RING_SZ_MASK to 0x7FFFFFFF and it took me past the check
'count > RTE_RING_SZ_MASK' and the DPDK booted successfully. No error
messages. But when I try to save the packets captured in memory pool into
the file, I notice that it fails(my application exits without any error
message) to write beyond a number of packets.

I noticed that this failure to write packets happens only when I change the
RTE_RING_SZ_MASK to 0x7FFFFFFF from original value 0x0FFFFFFF. I have below
questions to understand this further.

*1) Why is RTE_RING_SZ_MASK set to 0x0FFFFFFF. Why are the 4 bits left
unused? Is it because ring size shouldn't exceed 2 power 32?2) If yes to
above question, can anybody please explain why ring size can't exceed 2
power 32 as ssize_t can hold more than 2 power 32?  *

*3) What should be the approach if we want to capture more than
200M(200,000,000) packets? *

Thanks in Advance

More information about the users mailing list