Skip to content

Commit fee9b26

Browse files
authored
Merge pull request #255 from CESNET/dpdk-mempool-size
Dpdk - set RX queue size as (mempool size / 2)
2 parents 70e7cc2 + e5cdbbd commit fee9b26

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

input/dpdk.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ namespace ipxp {
4646
class DpdkOptParser : public OptionsParser {
4747
private:
4848
static constexpr size_t DEFAULT_MBUF_BURST_SIZE = 64;
49-
static constexpr size_t DEFAULT_MBUF_POOL_SIZE = 4096;
49+
static constexpr size_t DEFAULT_MBUF_POOL_SIZE = 8192;
5050
size_t pkt_buffer_size_;
5151
size_t pkt_mempool_size_;
5252
std::vector<uint16_t> port_numbers_;

input/dpdk/dpdkDevice.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
#include "dpdkDevice.hpp"
2727

28+
#include <algorithm>
2829
#include <chrono>
2930
#include <cstring>
3031
#include <iostream>
@@ -192,11 +193,13 @@ void DpdkDevice::initMemPools(uint16_t memPoolSize)
192193

193194
void DpdkDevice::setupRxQueues(uint16_t memPoolSize)
194195
{
196+
const uint16_t rxQueueSize = std::max(memPoolSize / 2, 1);
197+
195198
for (uint16_t rxQueueID = 0; rxQueueID < m_rxQueueCount; rxQueueID++) {
196199
int ret = rte_eth_rx_queue_setup(
197200
m_portID,
198201
rxQueueID,
199-
memPoolSize,
202+
rxQueueSize,
200203
rte_eth_dev_socket_id(m_portID),
201204
nullptr,
202205
m_memPools[rxQueueID]);
@@ -206,6 +209,9 @@ void DpdkDevice::setupRxQueues(uint16_t memPoolSize)
206209
+ std::to_string(m_portID));
207210
}
208211
}
212+
213+
std::cerr << "DPDK RX queues for port " << m_portID << " set up. Size of each queue: "
214+
<< rxQueueSize << std::endl;
209215
}
210216

211217
void DpdkDevice::configureRSS()

0 commit comments

Comments
 (0)