gazelle/0220-cleancode-refactor-lwipgz_list.h.patch
yinbin6 47bebd68c0 sync cleancode: refactor sys_now and lwip_ioctl
(cherry picked from commit 70e830bfafc64b7d2764ab0b54c3f75c5db92853)
2024-08-13 10:57:58 +08:00

446 lines
18 KiB
Diff

From daacb87180fa9c98c53c001bb37929b9aaef46d9 Mon Sep 17 00:00:00 2001
From: Lemmy Huang <huangliming5@huawei.com>
Date: Mon, 15 Jul 2024 11:27:19 +0800
Subject: [PATCH] cleancode: refactor lwipgz_list.h
Changed:
list_is_empty -> list_head_empty
list_is_null -> list_node_null
init_list_node -> list_init_head
init_list_node_null -> list_init_node
list_add_node -> list_add_node
list_del_node_null -> list_del_node
list_del_node -> __list_del_node
list_for_each_safe -> list_for_each_node
Deprecated:
list_del_node_init
Added:
list_get_node_count
list_entry
Signed-off-by: Lemmy Huang <huangliming5@huawei.com>
---
src/common/gazelle_base_func.h | 5 +-
src/lstack/api/lstack_epoll.c | 66 ++++++++++++-------------
src/lstack/api/lstack_rtc_api.c | 2 +-
src/lstack/core/lstack_lwip.c | 28 +++++------
src/lstack/core/lstack_protocol_stack.c | 14 +++---
src/lstack/core/lstack_stack_stat.c | 4 +-
6 files changed, 60 insertions(+), 59 deletions(-)
diff --git a/src/common/gazelle_base_func.h b/src/common/gazelle_base_func.h
index 2d629c1..be87ccd 100644
--- a/src/common/gazelle_base_func.h
+++ b/src/common/gazelle_base_func.h
@@ -36,7 +36,8 @@ int32_t filename_check(const char* args);
void gazelle_exit(void);
-#undef container_of
-#define container_of(ptr, type, field) ((type *)(void*)(((char *)(ptr)) - offsetof(type, field)))
+/* Do not check if the type of ptr and type->member are the same */
+#define container_of_uncheck_ptr(ptr, type, member) \
+ ((type *)(void*)(((char *)(ptr)) - offsetof(type, member)))
#endif /* ifndef __GAZELLE_BASE_FUNC_H__ */
diff --git a/src/lstack/api/lstack_epoll.c b/src/lstack/api/lstack_epoll.c
index 06c708b..2f48606 100644
--- a/src/lstack/api/lstack_epoll.c
+++ b/src/lstack/api/lstack_epoll.c
@@ -49,8 +49,8 @@ static void change_epollfd_kernel_thread(struct wakeup_poll *wakeup, struct prot
static inline void add_wakeup_to_stack_wakeuplist(struct wakeup_poll *wakeup, struct protocol_stack *stack)
{
- if (list_is_null(&wakeup->wakeup_list[stack->stack_idx])) {
- list_add_node(&stack->wakeup_list, &wakeup->wakeup_list[stack->stack_idx]);
+ if (list_node_null(&wakeup->wakeup_list[stack->stack_idx])) {
+ list_add_node(&wakeup->wakeup_list[stack->stack_idx], &stack->wakeup_list);
}
}
@@ -73,8 +73,8 @@ void add_sock_event_nolock(struct lwip_sock *sock, uint32_t event)
}
sock->events |= (event == EPOLLERR) ? (EPOLLIN | EPOLLERR) : (event & sock->epoll_events);
- if (list_is_null(&sock->event_list)) {
- list_add_node(&wakeup->event_list, &sock->event_list);
+ if (list_node_null(&sock->event_list)) {
+ list_add_node(&sock->event_list, &wakeup->event_list);
}
return;
}
@@ -111,7 +111,7 @@ void del_sock_event_nolock(struct lwip_sock *sock, uint32_t event)
}
if (sock->events == 0) {
- list_del_node_null(&sock->event_list);
+ list_del_node(&sock->event_list);
}
return;
}
@@ -127,7 +127,7 @@ void wakeup_stack_epoll(struct protocol_stack *stack)
{
struct list_node *node, *temp;
- list_for_each_safe(node, temp, &stack->wakeup_list) {
+ list_for_each_node(node, temp, &stack->wakeup_list) {
/* When temp is NULL, find the tail node in the wekeup_list and connect it to the back of the node */
if (unlikely(temp == NULL)) {
struct list_node *nod = &stack->wakeup_list;
@@ -139,7 +139,7 @@ void wakeup_stack_epoll(struct protocol_stack *stack)
temp = nod;
}
- struct wakeup_poll *wakeup = container_of((node - stack->stack_idx), struct wakeup_poll, wakeup_list);
+ struct wakeup_poll *wakeup = container_of_uncheck_ptr((node - stack->stack_idx), struct wakeup_poll, wakeup_list);
if (__atomic_load_n(&wakeup->in_wait, __ATOMIC_ACQUIRE)) {
__atomic_store_n(&wakeup->in_wait, false, __ATOMIC_RELEASE);
@@ -148,7 +148,7 @@ void wakeup_stack_epoll(struct protocol_stack *stack)
stack->stats.wakeup_events++;
}
- list_del_node_null(&wakeup->wakeup_list[stack->stack_idx]);
+ list_del_node(&wakeup->wakeup_list[stack->stack_idx]);
}
}
@@ -198,8 +198,8 @@ static void rtc_raise_pending_events(struct wakeup_poll *wakeup, struct lwip_soc
if (event) {
sock->events = event;
if (wakeup->type == WAKEUP_EPOLL && (sock->events & sock->epoll_events) &&
- list_is_null(&sock->event_list)) {
- list_add_node(&wakeup->event_list, &sock->event_list);
+ list_node_null(&sock->event_list)) {
+ list_add_node(&sock->event_list, &wakeup->event_list);
}
}
}
@@ -227,8 +227,8 @@ static void raise_pending_events(struct wakeup_poll *wakeup, struct lwip_sock *s
if (event) {
sock->events = event;
if (wakeup->type == WAKEUP_EPOLL && (sock->events & sock->epoll_events) &&
- list_is_null(&sock->event_list)) {
- list_add_node(&wakeup->event_list, &sock->event_list);
+ list_node_null(&sock->event_list)) {
+ list_add_node(&sock->event_list, &wakeup->event_list);
}
}
pthread_spin_unlock(&wakeup->event_list_lock);
@@ -255,7 +255,7 @@ int32_t lstack_do_epoll_create(int32_t fd)
}
for (uint32_t i = 0; i < PROTOCOL_STACK_MAX; i++) {
- init_list_node_null(&wakeup->wakeup_list[i]);
+ list_init_node(&wakeup->wakeup_list[i]);
}
if (sem_init(&wakeup->wait, 0, 0) != 0) {
@@ -266,12 +266,12 @@ int32_t lstack_do_epoll_create(int32_t fd)
__atomic_store_n(&wakeup->in_wait, false, __ATOMIC_RELEASE);
struct protocol_stack_group *stack_group = get_protocol_stack_group();
- init_list_node_null(&wakeup->poll_list);
+ list_init_node(&wakeup->poll_list);
pthread_spin_lock(&stack_group->poll_list_lock);
- list_add_node(&stack_group->poll_list, &wakeup->poll_list);
+ list_add_node(&wakeup->poll_list, &stack_group->poll_list);
pthread_spin_unlock(&stack_group->poll_list_lock);
- init_list_node(&wakeup->event_list);
+ list_init_head(&wakeup->event_list);
pthread_spin_init(&wakeup->event_list_lock, PTHREAD_PROCESS_PRIVATE);
wakeup->type = WAKEUP_EPOLL;
@@ -327,15 +327,15 @@ int32_t lstack_epoll_close(int32_t fd)
struct list_node *node, *temp;
pthread_spin_lock(&wakeup->event_list_lock);
- list_for_each_safe(node, temp, &wakeup->event_list) {
- struct lwip_sock *sock = container_of(node, struct lwip_sock, event_list);
- list_del_node_null(&sock->event_list);
+ list_for_each_node(node, temp, &wakeup->event_list) {
+ struct lwip_sock *sock = list_entry(node, struct lwip_sock, event_list);
+ list_del_node(&sock->event_list);
}
pthread_spin_unlock(&wakeup->event_list_lock);
pthread_spin_destroy(&wakeup->event_list_lock);
pthread_spin_lock(&stack_group->poll_list_lock);
- list_del_node_null(&wakeup->poll_list);
+ list_del_node(&wakeup->poll_list);
pthread_spin_unlock(&stack_group->poll_list_lock);
sem_destroy(&wakeup->wait);
@@ -413,7 +413,7 @@ int32_t lstack_rtc_epoll_ctl(int32_t epfd, int32_t op, int32_t fd, struct epoll_
break;
case EPOLL_CTL_DEL:
sock->epoll_events = 0;
- list_del_node_null(&sock->event_list);
+ list_del_node(&sock->event_list);
break;
default:
GAZELLE_RETURN(EINVAL);
@@ -464,7 +464,7 @@ int32_t lstack_rtw_epoll_ctl(int32_t epfd, int32_t op, int32_t fd, struct epoll_
sock->epoll_events = 0;
wakeup->stack_fd_cnt[sock->stack->stack_idx]--;
pthread_spin_lock(&wakeup->event_list_lock);
- list_del_node_null(&sock->event_list);
+ list_del_node(&sock->event_list);
pthread_spin_unlock(&wakeup->event_list_lock);
break;
default:
@@ -482,18 +482,18 @@ int32_t epoll_lwip_event_nolock(struct wakeup_poll *wakeup, struct epoll_event *
int32_t event_num = 0;
struct list_node *node, *temp;
- list_for_each_safe(node, temp, &wakeup->event_list) {
- struct lwip_sock *sock = container_of(node, struct lwip_sock, event_list);
+ list_for_each_node(node, temp, &wakeup->event_list) {
+ struct lwip_sock *sock = list_entry(node, struct lwip_sock, event_list);
if ((sock->epoll_events & sock->events) == 0) {
- list_del_node_null(node);
+ list_del_node(node);
continue;
}
if (event_num >= maxevents) {
/* move list head after the current node, and start traversing from this node next time */
- list_del_node_null(&wakeup->event_list);
- list_add_node(node, &wakeup->event_list);
+ list_del_node(&wakeup->event_list);
+ list_add_node(&wakeup->event_list, node);
break;
}
@@ -502,14 +502,14 @@ int32_t epoll_lwip_event_nolock(struct wakeup_poll *wakeup, struct epoll_event *
event_num++;
if (sock->epoll_events & EPOLLET) {
- list_del_node_null(node);
+ list_del_node(node);
sock->events = 0;
}
/* EPOLLONESHOT: generate event after epoll_ctl add/mod event again
epoll_event set 0 avoid generating event util epoll_ctl reset epoll_event */
if (sock->epoll_events & EPOLLONESHOT) {
- list_del_node_null(node);
+ list_del_node(node);
sock->epoll_events = 0;
}
}
@@ -654,7 +654,7 @@ int32_t lstack_rtc_epoll_wait(int32_t epfd, struct epoll_event* events, int32_t
}
loop_flag = false;
- if (!kernel_num && list_is_empty(&wakeup->event_list) && tmptimeout != 0) {
+ if (!kernel_num && list_head_empty(&wakeup->event_list) && tmptimeout != 0) {
loop_flag = true;
}
} while (loop_flag);
@@ -721,7 +721,7 @@ static int32_t init_poll_wakeup_data(struct wakeup_poll *wakeup)
__atomic_store_n(&wakeup->in_wait, false, __ATOMIC_RELEASE);
for (uint32_t i = 0; i < PROTOCOL_STACK_MAX; i++) {
- init_list_node_null(&wakeup->wakeup_list[i]);
+ list_init_node(&wakeup->wakeup_list[i]);
}
wakeup->epollfd = posix_api->epoll_create_fn(POLL_KERNEL_EVENTS);
@@ -745,9 +745,9 @@ static int32_t init_poll_wakeup_data(struct wakeup_poll *wakeup)
}
struct protocol_stack_group *stack_group = get_protocol_stack_group();
- init_list_node_null(&wakeup->poll_list);
+ list_init_node(&wakeup->poll_list);
pthread_spin_lock(&stack_group->poll_list_lock);
- list_add_node(&stack_group->poll_list, &wakeup->poll_list);
+ list_add_node(&wakeup->poll_list, &stack_group->poll_list);
pthread_spin_unlock(&stack_group->poll_list_lock);
int32_t stack_count[PROTOCOL_STACK_MAX] = {0};
diff --git a/src/lstack/api/lstack_rtc_api.c b/src/lstack/api/lstack_rtc_api.c
index 97623b3..ca0e7ec 100644
--- a/src/lstack/api/lstack_rtc_api.c
+++ b/src/lstack/api/lstack_rtc_api.c
@@ -56,7 +56,7 @@ int rtc_socket(int domain, int type, int protocol)
sock->epoll_events = 0;
sock->events = 0;
sock->wakeup = NULL;
- init_list_node_null(&sock->event_list);
+ list_init_node(&sock->event_list);
}
return ret;
}
diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c
index f52f39f..c05a763 100644
--- a/src/lstack/core/lstack_lwip.c
+++ b/src/lstack/core/lstack_lwip.c
@@ -173,8 +173,8 @@ int do_lwip_init_sock(int32_t fd)
sock->stack = stack;
- init_list_node_null(&sock->recv_list);
- init_list_node_null(&sock->event_list);
+ list_init_node(&sock->recv_list);
+ list_init_node(&sock->event_list);
return 0;
}
@@ -187,7 +187,7 @@ void do_lwip_clean_sock(int fd)
if (sock->wakeup && sock->wakeup->type == WAKEUP_EPOLL) {
pthread_spin_lock(&sock->wakeup->event_list_lock);
- list_del_node_null(&sock->event_list);
+ list_del_node(&sock->event_list);
pthread_spin_unlock(&sock->wakeup->event_list_lock);
}
@@ -195,7 +195,7 @@ void do_lwip_clean_sock(int fd)
reset_sock_data(sock);
- list_del_node_null(&sock->recv_list);
+ list_del_node(&sock->recv_list);
}
void do_lwip_free_pbuf(struct pbuf *pbuf)
@@ -1098,8 +1098,8 @@ void do_lwip_add_recvlist(int32_t fd)
{
struct lwip_sock *sock = lwip_get_socket(fd);
- if (sock && sock->stack && list_is_null(&sock->recv_list)) {
- list_add_node(&sock->stack->recv_list, &sock->recv_list);
+ if (sock && sock->stack && list_node_null(&sock->recv_list)) {
+ list_add_node(&sock->recv_list, &sock->stack->recv_list);
}
}
@@ -1109,8 +1109,8 @@ void read_same_node_recv_list(struct protocol_stack *stack)
struct list_node *node, *temp;
struct lwip_sock *sock;
- list_for_each_safe(node, temp, list) {
- sock = container_of(node, struct lwip_sock, recv_list);
+ list_for_each_node(node, temp, list) {
+ sock = list_entry(node, struct lwip_sock, recv_list);
if (sock->same_node_rx_ring != NULL && same_node_ring_count(sock)) {
add_sock_event(sock, EPOLLIN);
@@ -1125,18 +1125,18 @@ void do_lwip_read_recvlist(struct protocol_stack *stack, uint32_t max_num)
struct lwip_sock *sock;
uint32_t read_num = 0;
- list_for_each_safe(node, temp, list) {
- sock = container_of(node, struct lwip_sock, recv_list);
+ list_for_each_node(node, temp, list) {
+ sock = list_entry(node, struct lwip_sock, recv_list);
if (++read_num > max_num) {
/* list head move to next send */
list_del_node(&stack->recv_list);
- list_add_node(&sock->recv_list, &stack->recv_list);
+ list_add_node(&stack->recv_list, &sock->recv_list);
break;
}
if (sock->conn == NULL || sock->conn->recvmbox == NULL || rte_ring_count(sock->conn->recvmbox->ring) == 0) {
- list_del_node_null(&sock->recv_list);
+ list_del_node(&sock->recv_list);
continue;
}
@@ -1215,7 +1215,7 @@ static void copy_pcb_to_conn(struct gazelle_stat_lstack_conn_info *conn, const s
conn->send_ring_cnt = (sock->send_ring == NULL) ? 0 : gazelle_ring_readover_count(sock->send_ring);
conn->events = sock->events;
conn->epoll_events = sock->epoll_events;
- conn->eventlist = !list_is_null(&sock->event_list);
+ conn->eventlist = !list_node_null(&sock->event_list);
}
}
}
@@ -1426,7 +1426,7 @@ err_t find_same_node_memzone(struct tcp_pcb *pcb, struct lwip_sock *nsock)
/* rcvlink init in alloc_socket() */
/* remove from g_rcv_process_list in free_socket */
- list_add_node(&nsock->stack->same_node_recv_list, &nsock->recv_list);
+ list_add_node(&nsock->recv_list, &nsock->stack->same_node_recv_list);
return 0;
}
diff --git a/src/lstack/core/lstack_protocol_stack.c b/src/lstack/core/lstack_protocol_stack.c
index 4f5cfae..9bb1b6a 100644
--- a/src/lstack/core/lstack_protocol_stack.c
+++ b/src/lstack/core/lstack_protocol_stack.c
@@ -328,9 +328,9 @@ static int32_t init_stack_value(struct protocol_stack *stack, void *arg)
stack->stack_idx = t_params->idx;
stack->lwip_stats = &lwip_stats;
- init_list_node(&stack->recv_list);
- init_list_node(&stack->same_node_recv_list);
- init_list_node(&stack->wakeup_list);
+ list_init_head(&stack->recv_list);
+ list_init_head(&stack->same_node_recv_list);
+ list_init_head(&stack->wakeup_list);
sys_calibrate_tsc();
stack_stat_init();
@@ -588,7 +588,7 @@ int32_t stack_group_init(void)
struct protocol_stack_group *stack_group = get_protocol_stack_group();
stack_group->stack_num = 0;
- init_list_node(&stack_group->poll_list);
+ list_init_head(&stack_group->poll_list);
pthread_spin_init(&stack_group->poll_list_lock, PTHREAD_PROCESS_PRIVATE);
pthread_spin_init(&stack_group->socket_lock, PTHREAD_PROCESS_PRIVATE);
if (sem_init(&stack_group->sem_stack_setup, 0, 0) < 0) {
@@ -1013,7 +1013,7 @@ void stack_clean_epoll(struct rpc_msg *msg)
struct protocol_stack *stack = get_protocol_stack();
struct wakeup_poll *wakeup = (struct wakeup_poll *)msg->args[MSG_ARG_0].p;
- list_del_node_null(&wakeup->wakeup_list[stack->stack_idx]);
+ list_del_node(&wakeup->wakeup_list[stack->stack_idx]);
}
void stack_mempool_size(struct rpc_msg *msg)
@@ -1103,7 +1103,7 @@ void stack_recvlist_count(struct rpc_msg *msg)
struct list_node *node;
struct list_node *temp;
- list_for_each_safe(node, temp, list) {
+ list_for_each_node(node, temp, list) {
count++;
}
@@ -1258,7 +1258,7 @@ static void inline del_accept_in_event(struct lwip_sock *sock)
if (!NETCONN_IS_ACCEPTIN(sock)) {
sock->events &= ~EPOLLIN;
if (sock->events == 0) {
- list_del_node_null(&sock->event_list);
+ list_del_node(&sock->event_list);
}
}
diff --git a/src/lstack/core/lstack_stack_stat.c b/src/lstack/core/lstack_stack_stat.c
index e42efde..0411d9e 100644
--- a/src/lstack/core/lstack_stack_stat.c
+++ b/src/lstack/core/lstack_stack_stat.c
@@ -230,8 +230,8 @@ static void get_wakeup_stat(struct protocol_stack_group *stack_group, struct pro
pthread_spin_lock(&stack_group->poll_list_lock);
- list_for_each_safe(node, temp, &stack_group->poll_list) {
- struct wakeup_poll *wakeup = container_of(node, struct wakeup_poll, poll_list);
+ list_for_each_node(node, temp, &stack_group->poll_list) {
+ struct wakeup_poll *wakeup = list_entry(node, struct wakeup_poll, poll_list);
if (wakeup->bind_stack == stack) {
stat->kernel_events += wakeup->stat.kernel_events;
--
2.33.0