From 3ea9fe46c207a33bff93698b56ab60de4795adc8 Mon Sep 17 00:00:00 2001 From: yinbin Date: Sat, 7 Oct 2023 15:04:23 +0800 Subject: [PATCH] sync kernelevent: kernel event thread report kernel events to app thread directly without passing through lstack thread (cherry picked from commit 6f72d5dec577570de98b45cea09d87b71e8f030e) --- 0007-cosmetic-changes.patch | 67 ++++++++++ ...dd-loongarch64-and-sw64-arch-support.patch | 120 ++++++++++++++++++ ...d-the-dpdk-primary-default-parameter.patch | 39 ++++++ 0010-suport-clang-build.patch | 26 ++++ ...dev-fix-pbuf-chain-tot_len-incorrect.patch | 25 ++++ ...el-event-thread-report-kernel-events.patch | 105 +++++++++++++++ gazelle.spec | 18 ++- 7 files changed, 398 insertions(+), 2 deletions(-) create mode 100644 0007-cosmetic-changes.patch create mode 100644 0008-add-loongarch64-and-sw64-arch-support.patch create mode 100644 0009-CFG-fixed-the-dpdk-primary-default-parameter.patch create mode 100644 0010-suport-clang-build.patch create mode 100644 0011-ethdev-fix-pbuf-chain-tot_len-incorrect.patch create mode 100644 0012-kernelevent-kernel-event-thread-report-kernel-events.patch diff --git a/0007-cosmetic-changes.patch b/0007-cosmetic-changes.patch new file mode 100644 index 0000000..7f134fa --- /dev/null +++ b/0007-cosmetic-changes.patch @@ -0,0 +1,67 @@ +From 52e6a745e4b5bf27de66b55283c0e0f474213258 Mon Sep 17 00:00:00 2001 +From: Honggang LI +Date: Mon, 21 Aug 2023 08:48:00 +0800 +Subject: [PATCH] cosmetic changes + +Signed-off-by: Honggang LI +--- + 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 + diff --git a/0008-add-loongarch64-and-sw64-arch-support.patch b/0008-add-loongarch64-and-sw64-arch-support.patch new file mode 100644 index 0000000..e5703bd --- /dev/null +++ b/0008-add-loongarch64-and-sw64-arch-support.patch @@ -0,0 +1,120 @@ +From 7b2803bfe36e6ca19d4389d28c5d9f15dcbe95e8 Mon Sep 17 00:00:00 2001 +From: herengui +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 +--- + 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 + diff --git a/0009-CFG-fixed-the-dpdk-primary-default-parameter.patch b/0009-CFG-fixed-the-dpdk-primary-default-parameter.patch new file mode 100644 index 0000000..66b2a91 --- /dev/null +++ b/0009-CFG-fixed-the-dpdk-primary-default-parameter.patch @@ -0,0 +1,39 @@ +From d8d70edfd8d5fc7ac617671c5ac8fe8364727e29 Mon Sep 17 00:00:00 2001 +From: yinbin +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 + diff --git a/0010-suport-clang-build.patch b/0010-suport-clang-build.patch new file mode 100644 index 0000000..57d3f17 --- /dev/null +++ b/0010-suport-clang-build.patch @@ -0,0 +1,26 @@ +From 655bcc55ae2045b1a457f7b654569361ea32bfc2 Mon Sep 17 00:00:00 2001 +From: luofeng14 +Date: Tue, 12 Sep 2023 02:05:34 +0000 +Subject: [PATCH] suport clang build + +Signed-off-by: luofeng14 +--- + 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 + diff --git a/0011-ethdev-fix-pbuf-chain-tot_len-incorrect.patch b/0011-ethdev-fix-pbuf-chain-tot_len-incorrect.patch new file mode 100644 index 0000000..a98e0a6 --- /dev/null +++ b/0011-ethdev-fix-pbuf-chain-tot_len-incorrect.patch @@ -0,0 +1,25 @@ +From d98cb71e63fed73197334b373cfb979b6a47e1ea Mon Sep 17 00:00:00 2001 +From: yinbin +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 + diff --git a/0012-kernelevent-kernel-event-thread-report-kernel-events.patch b/0012-kernelevent-kernel-event-thread-report-kernel-events.patch new file mode 100644 index 0000000..ccfb33a --- /dev/null +++ b/0012-kernelevent-kernel-event-thread-report-kernel-events.patch @@ -0,0 +1,105 @@ +From 4267e381b25e42f19b2dd160fbf08efb5d8bd0fb Mon Sep 17 00:00:00 2001 +From: jiangheng +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 + diff --git a/gazelle.spec b/gazelle.spec index 236b841..b9ffd92 100644 --- a/gazelle.spec +++ b/gazelle.spec @@ -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 - 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 - 1.0.2-3 - add lstack_preload.c to makefile fix compile failure - fix previous commit "refactoring preload module"