[dpdk-dev] Effect of batching done at NIC and in application
ankitbhrdwj27 at gmail.com
Fri Mar 17 08:19:22 CET 2017
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
Q3: If first part is not the batch size at NIC, how to add functionality
for that ?
More information about the dev