sync kernelevent: kernel event thread report kernel events to app thread directly without passing through lstack thread

(cherry picked from commit 6f72d5dec577570de98b45cea09d87b71e8f030e)
This commit is contained in:
yinbin 2023-10-07 15:04:23 +08:00 committed by openeuler-sync-bot
parent 57ff18c7ed
commit 3ea9fe46c2
7 changed files with 398 additions and 2 deletions

View File

@ -0,0 +1,67 @@
From 52e6a745e4b5bf27de66b55283c0e0f474213258 Mon Sep 17 00:00:00 2001
From: Honggang LI <honggangli@163.com>
Date: Mon, 21 Aug 2023 08:48:00 +0800
Subject: [PATCH] cosmetic changes
Signed-off-by: Honggang LI <honggangli@163.com>
---
src/lstack/core/lstack_init.c | 2 +-
src/lstack/core/lstack_lwip.c | 1 -
src/lstack/include/lstack_cfg.h | 2 +-
src/ltran/ltran_dfx.c | 2 +-
4 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/lstack/core/lstack_init.c b/src/lstack/core/lstack_init.c
index 406a0b8..db203d2 100644
--- a/src/lstack/core/lstack_init.c
+++ b/src/lstack/core/lstack_init.c
@@ -256,7 +256,7 @@ __attribute__((constructor)) void gazelle_network_init(void)
return;
}
- /* check lstack num, and get process idx */
+ /* check lstack num */
if (check_params_from_primary() < 0) {
LSTACK_PRE_LOG(LSTACK_ERR, "lstack num error, not same to primary process!\n");
LSTACK_EXIT(1, "lstack num error, not same to primary process!\n");
diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c
index c1346f6..bcdbac0 100644
--- a/src/lstack/core/lstack_lwip.c
+++ b/src/lstack/core/lstack_lwip.c
@@ -1239,7 +1239,6 @@ static inline void clone_lwip_socket_opt(struct lwip_sock *dst_sock, struct lwip
dst_sock->conn->pcb.tcp->netif_idx = src_sock->conn->pcb.tcp->netif_idx;
dst_sock->conn->pcb.tcp->flags = src_sock->conn->pcb.tcp->flags;
dst_sock->conn->pcb.tcp->keep_idle = src_sock->conn->pcb.tcp->keep_idle;
- dst_sock->conn->pcb.tcp->keep_idle = src_sock->conn->pcb.tcp->keep_idle;
dst_sock->conn->pcb.tcp->keep_intvl = src_sock->conn->pcb.tcp->keep_intvl;
dst_sock->conn->pcb.tcp->keep_cnt = src_sock->conn->pcb.tcp->keep_cnt;
}
diff --git a/src/lstack/include/lstack_cfg.h b/src/lstack/include/lstack_cfg.h
index 9102fee..52a1abd 100644
--- a/src/lstack/include/lstack_cfg.h
+++ b/src/lstack/include/lstack_cfg.h
@@ -82,7 +82,7 @@ struct cfg_params {
uint32_t read_connect_number;
uint32_t rpc_number;
uint32_t nic_read_number;
- uint8_t use_ltran; // ture:lstack read from nic false:read form ltran
+ uint8_t use_ltran; // false:lstack read from nic. true:lstack read form ltran process.
uint16_t num_process;
uint16_t num_listen_port;
diff --git a/src/ltran/ltran_dfx.c b/src/ltran/ltran_dfx.c
index b8d9c99..e5fd0c8 100644
--- a/src/ltran/ltran_dfx.c
+++ b/src/ltran/ltran_dfx.c
@@ -836,7 +836,7 @@ static void gazelle_print_lstack_stat_snmp_core(const struct gazelle_stack_dfx_d
printf("ip_in_deliver: %u\n", snmp->ip_in_deliver);
printf("ip_out_req: %u\n", snmp->ip_out_req);
printf("ip_out_discard: %u\n", snmp->ip_out_discard);
- printf("ip_outnort: %u\n", snmp->ip_out_discard);
+ printf("ip_outnort: %u\n", snmp->ip_outnort);
printf("ip_reasm_ok: %u\n", snmp->ip_reasm_ok);
printf("ip_reasm_fail: %u\n", snmp->ip_reasm_fail);
printf("ip_frag_ok: %u\n", snmp->ip_frag_ok);
--
2.27.0

View File

@ -0,0 +1,120 @@
From 7b2803bfe36e6ca19d4389d28c5d9f15dcbe95e8 Mon Sep 17 00:00:00 2001
From: herengui <herengui@kylinsec.com.cn>
Date: Wed, 30 Aug 2023 15:41:03 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=BE=99=E8=8A=AF=E5=92=8C?=
=?UTF-8?q?=E7=94=B3=E5=A8=81=E6=9E=B6=E6=9E=84=E6=94=AF=E6=8C=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: herengui <herengui@kylinsec.com.cn>
---
src/lstack/Makefile | 9 +++++++--
src/ltran/CMakeLists.txt | 17 +++++++++++++----
test/unitest/ltran/CMakeLists.txt | 5 ++++-
3 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/src/lstack/Makefile b/src/lstack/Makefile
index 3550244..8f684ba 100644
--- a/src/lstack/Makefile
+++ b/src/lstack/Makefile
@@ -26,6 +26,7 @@ CC ?= gcc
OPTIMIZATION = -O2 -g
RM = rm -f
LDFLAGS = -shared -ldl -lm -lpthread -lrt -lnuma -lconfig -lboundscheck
+ARCH := $(shell uname -m)
ifneq ($(CC),clang)
SEC_FLAGS = -fstack-protector-strong -Werror -Wall -Wl,-z,relro, -Wl,-z,now -Wl,-z,noexecstack -Wtrampolines -fPIC -D_FORTIFY_SOURCE=2
@@ -88,18 +89,22 @@ ifeq ($(DPDK_VERSION_1911), 1)
LIBRTE_LIB += $(LIB_PATH)/librte_pmd_pcap.so \
$(LIB_PATH)/librte_pmd_bond.so \
$(LIB_PATH)/librte_pmd_hinic.so \
- $(LIB_PATH)/librte_pmd_i40e.so \
$(LIB_PATH)/librte_pmd_ixgbe.so \
$(LIB_PATH)/librte_pmd_virtio.so
+ ifneq ($(ARCH), loongarch64)
+ LIBRTE_LIB += $(LIB_PATH)/librte_pmd_i40e.so
+ endif
else
LIBRTE_LIB += $(LIB_PATH)/librte_net_pcap.so \
$(LIB_PATH)/librte_net_bond.so \
$(LIB_PATH)/librte_net_hinic.so \
- $(LIB_PATH)/librte_net_i40e.so \
$(LIB_PATH)/librte_net_ixgbe.so \
$(LIB_PATH)/librte_net_virtio.so \
$(LIB_PATH)/librte_telemetry.so \
$(LIB_PATH)/librte_pcapng.so
+ ifneq ($(ARCH), loongarch64)
+ LIBRTE_LIB += $(LIB_PATH)/librte_net_i40e.so
+ endif
endif
DEP_LIBS = $(LWIP_LIB) $(LIBRTE_LIB)
diff --git a/src/ltran/CMakeLists.txt b/src/ltran/CMakeLists.txt
index b8d92b7..e098a77 100644
--- a/src/ltran/CMakeLists.txt
+++ b/src/ltran/CMakeLists.txt
@@ -30,12 +30,18 @@ endif($ENV{GAZELLE_COVERAGE_ENABLE})
if($ENV{DPDK_VERSION_1911})
set(DPDK_DIR /usr/include/dpdk)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDPDK_VERSION_1911=1")
- set(DPDK_LINK_FLAGS "-Wl,-lrte_pmd_bond -Wl,-lrte_pmd_i40e -Wl,-lrte_pmd_hinic -Wl,-lrte_pmd_ixgbe \
+ set(DPDK_LINK_FLAGS "-Wl,-lrte_pmd_bond -Wl,-lrte_pmd_hinic -Wl,-lrte_pmd_ixgbe \
-Wl,-lrte_pmd_pcap -Wl,-lrte_pmd_virtio")
+ if(NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "loongarch64")
+ set(DPDK_LINK_FLAGS "${DPDK_LINK_FLAGS} -Wl,-lrte_pmd_i40e")
+ endif()
else()
set(DPDK_DIR /usr/local/include/)
- set(DPDK_LINK_FLAGS "-Wl,-lrte_net_bond -Wl,-lrte_net_i40e -Wl,-lrte_net_hinic -Wl,-lrte_net_ixgbe \
+ set(DPDK_LINK_FLAGS "-Wl,-lrte_net_bond -Wl,-lrte_net_hinic -Wl,-lrte_net_ixgbe \
-Wl,-lpcap -Wl,-lrte_net_pcap -Wl,-lrte_net_virtio -Wl,-lrte_pcapng -Wl,-lrte_telemetry")
+ if(NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "loongarch64")
+ set(DPDK_LINK_FLAGS "${DPDK_LINK_FLAGS} -Wl,-lrte_net_i40e")
+ endif()
endif($ENV{DPDK_VERSION_1911})
add_executable(ltran main.c ltran_param.c ltran_config.c ltran_ethdev.c ltran_stat.c ltran_errno.c
@@ -44,12 +50,15 @@ add_executable(ltran main.c ltran_param.c ltran_config.c ltran_ethdev.c ltran_st
${COMMON_DIR}/gazelle_parse_config.c)
target_include_directories(ltran PRIVATE ${COMMON_DIR} ${PROJECT_SOURCE_DIR} ${LWIP_DIR} ${DPDK_DIR})
-target_compile_options(ltran PRIVATE -march=native -fno-strict-aliasing -D__ARM_FEATURE_CRC32=1 -DRTE_MACHINE_CPUFLAG_NEON
+target_compile_options(ltran PRIVATE -fno-strict-aliasing -D__ARM_FEATURE_CRC32=1 -DRTE_MACHINE_CPUFLAG_NEON
-DRTE_MACHINE_CPUFLAG_CRC32 -DRTE_MACHINE_CPUFLAG_PMULL -DRTE_MACHINE_CPUFLAG_AES
-DRTE_MACHINE_CPUFLAG_SHA1 -DRTE_MACHINE_CPUFLAG_SHA2 -include rte_config.h
-D_GNU_SOURCE -W -Wall -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition
- -Wpointer-arith -Wcast-align -Wcast-qual -Wnested-externs -Wformat-nonliteral -Wformat-security -Wundef
+ -Wpointer-arith -Wcast-qual -Wnested-externs -Wformat-nonliteral -Wformat-security -Wundef
-Wdeprecated -Wwrite-strings -Wno-implicit-fallthrough -D_FORTIFY_SOURCE=2)
+if(NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "sw_64")
+ target_compile_options(ltran PRIVATE -march=native -Wcast-align)
+endif()
target_link_libraries(ltran PRIVATE config boundscheck rte_pdump -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wtrampolines)
set_target_properties(ltran PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -Wl,--no-whole-archive \
diff --git a/test/unitest/ltran/CMakeLists.txt b/test/unitest/ltran/CMakeLists.txt
index 9496053..60bda83 100644
--- a/test/unitest/ltran/CMakeLists.txt
+++ b/test/unitest/ltran/CMakeLists.txt
@@ -47,12 +47,15 @@ set_target_properties(ltran_test PROPERTIES LINK_FLAGS "-L$ENV{DPDK_LIB_PATH} -W
-Wl,-lrte_bus_dpaa -Wl,-lrte_bus_vdev -Wl,-lrte_bus_fslmc -Wl,-lrte_mempool_bucket -Wl,-lrte_mempool_stack -Wl,-lrte_mempool_dpaa \
-Wl,-lrte_mempool_dpaa2 -Wl,-lrte_net_af_packet -Wl,-lrte_net_ark -Wl,-lrte_net_atlantic -Wl,-lrte_net_axgbe \
-Wl,-lrte_net_bnxt -Wl,-lrte_net_bond -Wl,-lrte_net_cxgbe -Wl,-lrte_net_dpaa -Wl,-lrte_net_dpaa2 -Wl,-lrte_net_e1000 -Wl,-lrte_net_ena \
- -Wl,-lrte_net_enetc -Wl,-lrte_net_enic -Wl,-lrte_net_failsafe -Wl,-lrte_net_i40e -Wl,-lrte_net_hinic -Wl,-lrte_net_ixgbe -Wl,-lrte_net_kni \
+ -Wl,-lrte_net_enetc -Wl,-lrte_net_enic -Wl,-lrte_net_failsafe -Wl,-lrte_net_hinic -Wl,-lrte_net_ixgbe -Wl,-lrte_net_kni \
-Wl,-lrte_net_nfp -Wl,-lrte_net_null -Wl,-lpcap -Wl,-lrte_net_qede -Wl,-lrte_net_ring -Wl,-lrte_net_softnic \
-Wl,-lrte_net_tap -Wl,-lrte_net_vdev_netvsc -Wl,-lrte_net_virtio -Wl,-lrte_net_vhost \
-Wl,-lrte_bus_vmbus -Wl,-lrte_net_netvsc -Wl,-lrte_mempool_octeontx -Wl,-lrte_net_octeontx \
-Wl,-lrte_bus_ifpga -Wl,-lrte_stack -Wl,-lrte_telemetry\
-Wl,--no-whole-archive -Wl,-lm -Wl,-lrt -Wl,-lnuma -Wl,-ldl -Wl,-export-dynamic -Wl,-export-dynamic \
-Wl,--as-needed -Wl,-export-dynamic -Wl,-Map=ltran.map -Wl,--cref")
+if(NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "loongarch64")
+ set_target_properties(ltran_test PROPERTIES LINK_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-lrte_net_i40e")
+endif()
target_include_directories(ltran_test PRIVATE ${LIB_PATH})
target_link_libraries(ltran_test PRIVATE config boundscheck cunit pthread)
--
2.27.0

View File

@ -0,0 +1,39 @@
From d8d70edfd8d5fc7ac617671c5ac8fe8364727e29 Mon Sep 17 00:00:00 2001
From: yinbin <yinbin8@huawei.com>
Date: Thu, 7 Sep 2023 19:55:58 +0800
Subject: [PATCH] CFG:fixed the dpdk primary default parameter
---
src/lstack/core/lstack_cfg.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/lstack/core/lstack_cfg.c b/src/lstack/core/lstack_cfg.c
index 32d63b9..9fc16dd 100644
--- a/src/lstack/core/lstack_cfg.c
+++ b/src/lstack/core/lstack_cfg.c
@@ -770,6 +770,8 @@ static int32_t parse_dpdk_args(void)
}
start_index = 1;
+ struct cfg_params *global_params = get_global_cfg_params();
+ global_params->is_primary = 1;
for (i = 0; i < g_config_params.dpdk_argc; i++) {
arg = config_setting_get_string_elem(args, i);
if (arg == NULL)
@@ -780,10 +782,9 @@ static int32_t parse_dpdk_args(void)
}
g_config_params.dpdk_argv[start_index + i] = p;
- const char *primary = "primary";
- if (strcmp(p, primary) == 0) {
- struct cfg_params *global_params = get_global_cfg_params();
- global_params->is_primary = 1;
+ const char *secondary = "secondary";
+ if (strcmp(p, secondary) == 0) {
+ global_params->is_primary = 0;
}
(void)fprintf(stderr, "%s ", g_config_params.dpdk_argv[start_index + i]);
--
2.27.0

View File

@ -0,0 +1,26 @@
From 655bcc55ae2045b1a457f7b654569361ea32bfc2 Mon Sep 17 00:00:00 2001
From: luofeng14 <luofeng13@huawei.com>
Date: Tue, 12 Sep 2023 02:05:34 +0000
Subject: [PATCH] suport clang build
Signed-off-by: luofeng14 <luofeng13@huawei.com>
---
src/lstack/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lstack/Makefile b/src/lstack/Makefile
index 8f684ba..30965f8 100644
--- a/src/lstack/Makefile
+++ b/src/lstack/Makefile
@@ -40,7 +40,7 @@ INC = -I$(LSTACK_DIR)/include \
-I$(LWIP_INCLUDE_FILE) \
-I$(DPDK_INCLUDE_FILE)
-CFLAGS = $(OPTIMIZATION) -fno-strict-aliasing $(INC)
+CFLAGS += $(OPTIMIZATION) -fno-strict-aliasing $(INC) -Wno-error=unused-function
ifeq ($(GAZELLE_COVERAGE_ENABLE), 1)
LDFLAGS += -fprofile-arcs -ftest-coverage
--
2.27.0

View File

@ -0,0 +1,25 @@
From d98cb71e63fed73197334b373cfb979b6a47e1ea Mon Sep 17 00:00:00 2001
From: yinbin <yinbin8@huawei.com>
Date: Fri, 15 Sep 2023 10:16:19 +0800
Subject: [PATCH] ethdev: fix pbuf chain tot_len incorrect p->tot_len = p->len
+ (p->next ? p->next->tot_len : 0)
---
src/lstack/netif/lstack_ethdev.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/lstack/netif/lstack_ethdev.c b/src/lstack/netif/lstack_ethdev.c
index 3ea8e52..e3e823b 100644
--- a/src/lstack/netif/lstack_ethdev.c
+++ b/src/lstack/netif/lstack_ethdev.c
@@ -96,6 +96,7 @@ void eth_dev_recv(struct rte_mbuf *mbuf, struct protocol_stack *stack)
break;
}
next->tot_len = pkt_len;
+ pkt_len -= len;
#if CHECKSUM_CHECK_IP_HW || CHECKSUM_CHECK_TCP_HW
next->ol_flags = m->ol_flags;
#endif
--
2.27.0

View File

@ -0,0 +1,105 @@
From 4267e381b25e42f19b2dd160fbf08efb5d8bd0fb Mon Sep 17 00:00:00 2001
From: jiangheng <jiangheng14@huawei.com>
Date: Mon, 4 Sep 2023 11:16:12 +0800
Subject: [PATCH] kernelevent: kernel event thread report kernel events to app
thread directly without passing through lstack thread
---
src/lstack/core/lstack_protocol_stack.c | 53 +++++++++++++------------
1 file changed, 27 insertions(+), 26 deletions(-)
diff --git a/src/lstack/core/lstack_protocol_stack.c b/src/lstack/core/lstack_protocol_stack.c
index 3a6e792..ca0b046 100644
--- a/src/lstack/core/lstack_protocol_stack.c
+++ b/src/lstack/core/lstack_protocol_stack.c
@@ -38,7 +38,7 @@
#include "lstack_stack_stat.h"
#include "lstack_protocol_stack.h"
-#define KERNEL_EVENT_100us 100
+#define KERNEL_EVENT_10us 10
static PER_THREAD struct protocol_stack *g_stack_p = NULL;
static struct protocol_stack_group g_stack_group = {0};
@@ -258,6 +258,29 @@ static int32_t create_thread(void *arg, char *thread_name, stack_thread_func fun
return 0;
}
+static void wakeup_kernel_event(struct protocol_stack *stack)
+{
+ if (stack->kernel_event_num <= 0) {
+ return;
+ }
+
+ for (int32_t i = 0; i < stack->kernel_event_num; i++) {
+ struct wakeup_poll *wakeup = stack->kernel_events[i].data.ptr;
+ if (wakeup->type == WAKEUP_CLOSE) {
+ continue;
+ }
+
+ __atomic_store_n(&wakeup->have_kernel_event, true, __ATOMIC_RELEASE);
+ if (__atomic_load_n(&wakeup->in_wait, __ATOMIC_ACQUIRE)) {
+ __atomic_store_n(&wakeup->in_wait, false, __ATOMIC_RELEASE);
+ rte_mb();
+ pthread_mutex_unlock(&wakeup->wait);
+ }
+ }
+
+ return;
+}
+
static void* gazelle_kernelevent_thread(void *arg)
{
struct thread_params *t_params = (struct thread_params*) arg;
@@ -272,8 +295,9 @@ static void* gazelle_kernelevent_thread(void *arg)
for (;;) {
stack->kernel_event_num = posix_api->epoll_wait_fn(stack->epollfd, stack->kernel_events, KERNEL_EPOLL_MAX, -1);
- while (stack->kernel_event_num > 0) {
- usleep(KERNEL_EVENT_100us);
+ if (stack->kernel_event_num > 0) {
+ wakeup_kernel_event(stack);
+ usleep(KERNEL_EVENT_10us);
}
}
@@ -416,28 +440,6 @@ END1:
return NULL;
}
-static void wakeup_kernel_event(struct protocol_stack *stack)
-{
- if (stack->kernel_event_num == 0) {
- return;
- }
-
- for (int32_t i = 0; i < stack->kernel_event_num; i++) {
- struct wakeup_poll *wakeup = stack->kernel_events[i].data.ptr;
- if (wakeup->type == WAKEUP_CLOSE) {
- continue;
- }
-
- __atomic_store_n(&wakeup->have_kernel_event, true, __ATOMIC_RELEASE);
- if (list_is_null(&wakeup->wakeup_list[stack->stack_idx])) {
- list_add_node(&stack->wakeup_list, &wakeup->wakeup_list[stack->stack_idx]);
- }
- }
-
- stack->kernel_event_num = 0;
-}
-
-
static void* gazelle_stack_thread(void *arg)
{
struct thread_params *t_params = (struct thread_params*) arg;
@@ -485,7 +487,6 @@ static void* gazelle_stack_thread(void *arg)
read_recv_list(stack, read_connect_number);
if ((wakeup_tick & 0xf) == 0) {
- wakeup_kernel_event(stack);
wakeup_stack_epoll(stack);
}
--
2.27.0

View File

@ -2,14 +2,14 @@
Name: gazelle
Version: 1.0.2
Release: 3
Release: 4
Summary: gazelle is a high performance user-mode stack
License: MulanPSL-2.0
URL: https://gitee.com/openeuler/gazelle
Source0: %{name}-%{version}.tar.gz
BuildRequires: cmake gcc-c++
BuildRequires: lwip >= 2.1.3-75
BuildRequires: lwip >= 2.1.3-76
BuildRequires: dpdk-devel >= 21.11-5
BuildRequires: numactl-devel libpcap-devel libconfig-devel libboundscheck uthash-devel
@ -22,6 +22,12 @@ Patch9003: 0003-set-localhost-ip-when-bind-ip-is-same-as-ip-in-lstac.patch
Patch9004: 0004-refactoring-preload-module.patch
Patch9005: 0005-fix-previous-commit-refactoring-preload-module.patch
Patch9006: 0006-add-lstack_preload.c-to-makefile.patch
Patch9007: 0007-cosmetic-changes.patch
Patch9008: 0008-add-loongarch64-and-sw64-arch-support.patch
Patch9009: 0009-CFG-fixed-the-dpdk-primary-default-parameter.patch
Patch9010: 0010-suport-clang-build.patch
Patch9011: 0011-ethdev-fix-pbuf-chain-tot_len-incorrect.patch
Patch9012: 0012-kernelevent-kernel-event-thread-report-kernel-events.patch
%description
%{name} is a high performance user-mode stack.
@ -63,6 +69,14 @@ install -Dpm 0640 %{_builddir}/%{name}-%{version}/src/ltran/ltran.conf %{b
%config(noreplace) %{conf_path}/ltran.conf
%changelog
* Sat Oct 7 2023 yinbin6 <yinbin8@huawei.com> - 1.0.2-4
- kernelevent: kernel event thread report kernel events to app thread directly without passing through lstack thread
- ethdev: fix pbuf chain tot_len incorrect p->tot_len = p->len + (p->next ? p->next->tot_len : 0)
- suport clang build
- CFG:fixed the dpdk primary default parameter
- 添加龙芯和申威架构支持
- cosmetic changes
* Sat Aug 19 2023 jiangheng12 <jiangheng14@huawei.com> - 1.0.2-3
- add lstack_preload.c to makefile fix compile failure
- fix previous commit "refactoring preload module"