[dpdk-dev] Effect of batching done at NIC and in application

ankit bhardwaj ankitbhrdwj27 at gmail.com
Fri Mar 17 08:19:22 CET 2017


Hi All,

I am using DPDK 16.07 for my use. NIC attached to my server is X520, which
is using IXGBE Driver. I am a bit confusion about the batching factor and
on what basis it is done.

In file "dpdk-16.07/drivers/net/ixgbe/ixgbe_rxtx.h" there are two macros -

#define RTE_PMD_IXGBE_TX_MAX_BURST 32
#define RTE_PMD_IXGBE_RX_MAX_BURST 32

which according to me are the batch size at NIC. RTE_PMD_IXGBE_TX_MAX_BURST
declares the batch size for transmitting  and RTE_PMD_IXGBE_RX_MAX_BURST
declares the batch size for receiving.

And similarly in the examples, for ex: dpdk-16.07/examples/l2fwd/main.c we
are using BURST_SIZE

#define MAX_PKT_BURST 32.

Now the questions are -
Q1: Is my understanding correct about the batch size at NIC and batch size
at CPU ?

Q2: Why the batch size is 32 and not some other number, shouldn't we decide
the batch size depending on the machine configuration ? What are the
factors which should be used in deciding the batch size ? I am assuming
that latency/per packet is not an issue and we are interested in the
throughput.

Q3: If first part is not the batch size at NIC, how to add functionality
for that ?

Thanks
Ankit Bhardwaj


More information about the dev mailing list