79 lines
2.7 KiB
Diff
79 lines
2.7 KiB
Diff
From aa0bd688a6dae115e136771fda747c9428e65561 Mon Sep 17 00:00:00 2001
|
||
From: yangchen <yangchen145@huawei.com>
|
||
Date: Tue, 2 Jan 2024 09:32:00 +0800
|
||
Subject: [PATCH] lstack_dpdk: limit mbuf max num
|
||
|
||
---
|
||
src/lstack/core/lstack_dpdk.c | 5 +++++
|
||
src/lstack/include/lstack_dpdk.h | 18 ++++++++----------
|
||
src/ltran/main.c | 2 +-
|
||
3 files changed, 14 insertions(+), 11 deletions(-)
|
||
|
||
diff --git a/src/lstack/core/lstack_dpdk.c b/src/lstack/core/lstack_dpdk.c
|
||
index 729a84c..580dd1d 100644
|
||
--- a/src/lstack/core/lstack_dpdk.c
|
||
+++ b/src/lstack/core/lstack_dpdk.c
|
||
@@ -155,6 +155,11 @@ struct rte_mempool *create_pktmbuf_mempool(const char *name, uint32_t nb_mbuf,
|
||
LSTACK_LOG(ERR, LSTACK, "snprintf_s fail ret=%d \n", ret);
|
||
return NULL;
|
||
}
|
||
+ /* limit mbuf max num based on the dpdk capability */
|
||
+ if (nb_mbuf > MBUF_MAX_NUM) {
|
||
+ LSTACK_LOG(ERR, LSTACK, "out of the dpdk mbuf quantity range\n");
|
||
+ return NULL;
|
||
+ }
|
||
|
||
/* time stamp before pbuf_custom as priv_data */
|
||
uint16_t private_size = RTE_ALIGN(sizeof(struct mbuf_private), RTE_CACHE_LINE_SIZE);
|
||
diff --git a/src/lstack/include/lstack_dpdk.h b/src/lstack/include/lstack_dpdk.h
|
||
index 4a160e0..2a44c6e 100644
|
||
--- a/src/lstack/include/lstack_dpdk.h
|
||
+++ b/src/lstack/include/lstack_dpdk.h
|
||
@@ -17,22 +17,20 @@
|
||
#include "gazelle_opt.h"
|
||
#include "gazelle_dfx_msg.h"
|
||
|
||
-#define RXTX_CACHE_SZ (VDEV_RX_QUEUE_SZ)
|
||
-#define KNI_NB_MBUF (DEFAULT_RING_SIZE << 4)
|
||
+#define RXTX_CACHE_SZ (VDEV_RX_QUEUE_SZ)
|
||
|
||
-#define RESERVE_NIC_RECV (1024)
|
||
+#define KNI_NB_MBUF (DEFAULT_RING_SIZE << 4)
|
||
|
||
-#define MBUF_HEADER_LEN 64
|
||
-
|
||
-#define MAX_PACKET_SZ 2048
|
||
+#define MAX_PACKET_SZ 2048
|
||
|
||
#define RING_SIZE(x) ((x) - 1)
|
||
|
||
-#define MBUF_SZ (MAX_PACKET_SZ + RTE_PKTMBUF_HEADROOM)
|
||
+#define MBUF_SZ (MAX_PACKET_SZ + RTE_PKTMBUF_HEADROOM)
|
||
|
||
-#define MAX_CORE_NUM 256
|
||
-#define CALL_MSG_RING_SIZE (unsigned long long)32
|
||
-#define CALL_CACHE_SZ 0
|
||
+/* DPDK limit ring head-tail distance in rte_ring_init.
|
||
+ * Max value is RTE_RING_SZ_MASK / HTD_MAX_DEF, RTE_RING_SZ_MASK is 0x7fffffff, HTD_MAX_DEF is 8.
|
||
+ */
|
||
+#define MBUF_MAX_NUM 0xfffffff
|
||
|
||
int thread_affinity_default(void);
|
||
int thread_affinity_init(int cpu_id);
|
||
diff --git a/src/ltran/main.c b/src/ltran/main.c
|
||
index 87f1e14..c2598a7 100644
|
||
--- a/src/ltran/main.c
|
||
+++ b/src/ltran/main.c
|
||
@@ -55,7 +55,7 @@ static void print_stack(void)
|
||
|
||
static void sig_default_handler(int32_t sig)
|
||
{
|
||
- LTRAN_ERR("ltran dumped,caught signal:%d.\n", sig);
|
||
+ LTRAN_ERR("ltran dumped, caught signal: %d.\n", sig);
|
||
print_stack();
|
||
dpdk_kni_release();
|
||
int ret = 0;
|
||
--
|
||
2.33.0
|
||
|