Skip to content

Commit f7b153f

Browse files
authored
Rewrite Python version of supervisor-proc-exit-listener in Rust (supervisor-proc-exit-listener-rs) without integration (#24508)
#### Why I did it Rewrite Python version of supervisor-proc-exit-listener in Rust (supervisor-proc-exit-listener-rs) Add unit test, achieve coverage "73.60% coverage, 184/250 lines covered". Change executable name to supervisor-proc-exit-listener-rs. However, the executable is not used in any the docker containers, we will use another PR (#23688) to use it in each docker container. Before this PR: ``` PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 13062 root 20 0 130.3m 33.4m 19.0m S 0.0 0.2 0:00.23 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name swss 15163 root 20 0 130.3m 32.1m 17.8m S 0.0 0.2 0:00.17 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name eventd 13170 root 20 0 130.3m 32.1m 17.8m S 0.0 0.2 0:00.26 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name sysmgr 20784 root 20 0 130.3m 32.1m 17.8m S 0.0 0.2 0:00.23 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name gnmi 19288 root 20 0 130.3m 32.1m 17.7m S 0.0 0.2 0:00.17 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name bmp 21357 root 20 0 129.3m 32.0m 17.8m S 0.0 0.2 0:00.12 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name snmp 13286 root 20 0 130.3m 32.0m 17.7m S 0.0 0.2 0:00.27 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name teamd 15647 root 20 0 129.3m 31.9m 17.7m S 0.0 0.2 0:00.17 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name bgp 17187 root 20 0 130.2m 31.9m 17.6m S 0.0 0.2 0:00.15 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name syncd 5191 root 20 0 129.3m 31.9m 17.6m S 0.0 0.2 0:00.20 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name database 17893 root 20 0 129.3m 31.9m 17.6m S 0.0 0.2 0:00.13 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name pmon 21026 root 20 0 129.3m 31.8m 17.6m S 0.0 0.2 0:00.13 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name lldp 17195 root 20 0 129.3m 31.8m 17.6m S 0.0 0.2 0:00.12 /usr/bin/python3 /usr/local/bin/supervisor-proc-exit-listener --container-name radv ``` | RES | SHR | RssAnon | All | |-------|-------|---------|-------------| | 33.4 | 19 | 14.4 | | | 32.1 | 17.8 | 14.3 | | | 32.1 | 17.8 | 14.3 | | | 32.1 | 17.8 | 14.3 | | | 32.1 | 17.7 | 14.4 | | | 32 | 17.8 | 14.2 | | | 32 | 17.7 | 14.3 | | | 31.9 | 17.7 | 14.2 | | | 31.9 | 17.6 | 14.3 | | | 31.9 | 17.6 | 14.3 | | | 31.9 | 17.6 | 14.3 | | | 31.8 | 17.6 | 14.2 | | | 31.8 | 17.6 | 14.2 | | | **Total** | | **185.7** | **203.49** | | **Avg** | **17.79** | | | After this PR: ``` PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 20051 root 20 0 94.9m 8.4m 7.7m S 0.0 0.1 0:00.01 /usr/bin/supervisor-proc-exit-listener-rs --container-name bmp 16240 root 20 0 94.9m 8.4m 7.7m S 0.0 0.1 0:00.01 /usr/bin/supervisor-proc-exit-listener-rs --container-name eventd 17235 root 20 0 94.9m 8.3m 7.6m S 0.0 0.1 0:00.02 /usr/bin/supervisor-proc-exit-listener-rs --container-name syncd 21093 root 20 0 94.9m 8.3m 7.7m S 0.0 0.1 0:00.01 /usr/bin/supervisor-proc-exit-listener-rs --container-name gnmi 16207 root 20 0 94.9m 8.3m 7.6m S 0.0 0.1 0:00.01 /usr/bin/supervisor-proc-exit-listener-rs --container-name teamd 16092 root 20 0 94.9m 8.3m 7.6m S 0.0 0.1 0:00.02 /usr/bin/supervisor-proc-exit-listener-rs --container-name sysmgr 16288 root 20 0 94.9m 8.3m 7.6m S 0.0 0.1 0:00.01 /usr/bin/supervisor-proc-exit-listener-rs --container-name bgp 21158 root 20 0 94.9m 8.3m 7.6m S 0.0 0.1 0:00.01 /usr/bin/supervisor-proc-exit-listener-rs --container-name lldp 17281 root 20 0 94.9m 8.3m 7.6m S 0.0 0.1 0:00.01 /usr/bin/supervisor-proc-exit-listener-rs --container-name radv 16093 root 20 0 94.9m 8.3m 7.6m S 0.0 0.1 0:00.02 /usr/bin/supervisor-proc-exit-listener-rs --container-name swss 21452 root 20 0 94.9m 8.3m 7.6m S 0.0 0.1 0:00.01 /usr/bin/supervisor-proc-exit-listener-rs --container-name snmp 18123 root 20 0 94.9m 8.2m 7.6m S 0.0 0.1 0:00.01 /usr/bin/supervisor-proc-exit-listener-rs --container-name pmon 7246 root 20 0 94.9m 8.2m 7.5m S 0.0 0.1 0:00.04 /usr/bin/supervisor-proc-exit-listener-rs --container-name database ``` Memory calc sheet: | RES | SHR | RssAnon | All | |-------|-------|---------|-------------| | 8.4 | 7.7 | 0.7 | | | 8.4 | 7.7 | 0.7 | | | 8.3 | 7.6 | 0.7 | | | 8.3 | 7.7 | 0.6 | | | 8.3 | 7.6 | 0.7 | | | 8.3 | 7.6 | 0.7 | | | 8.3 | 7.6 | 0.7 | | | 8.3 | 7.6 | 0.7 | | | 8.3 | 7.6 | 0.7 | | | 8.3 | 7.6 | 0.7 | | | 8.3 | 7.6 | 0.7 | | | 8.2 | 7.6 | 0.6 | | | 8.2 | 7.5 | 0.7 | | | **Total** | | **8.9** | **16.52** | | **Avg** | **7.62** | | | The total memory reduction is about 203.49 - 16.52 = 186.97 MB
1 parent f9891be commit f7b153f

20 files changed

+3344
-1
lines changed

rules/docker-config-engine-bookworm.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ $(DOCKER_CONFIG_ENGINE_BOOKWORM)_DEPENDS += $(LIBSWSSCOMMON) \
99
$(LIBYANG_PY3) \
1010
$(PYTHON3_SWSSCOMMON) \
1111
$(SONIC_DB_CLI) \
12-
$(SONIC_EVENTD)
12+
$(SONIC_EVENTD) \
13+
$(SONIC_SUPERVISORD_UTILITIES_RS)
1314
$(DOCKER_CONFIG_ENGINE_BOOKWORM)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY3) \
1415
$(SONIC_YANG_MGMT_PY3) \
1516
$(SONIC_YANG_MODELS_PY3) \
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
SPATH := $($(SONIC_SUPERVISORD_UTILITIES_RS)_SRC_PATH)
2+
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/sonic-supervisord-utilities-rs.mk rules/sonic-supervisord-utilities-rs.dep
3+
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
4+
DEP_FILES += $(shell git ls-files $(SPATH))
5+
6+
$(SONIC_SUPERVISORD_UTILITIES_RS)_CACHE_MODE := GIT_CONTENT_SHA
7+
$(SONIC_SUPERVISORD_UTILITIES_RS)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
8+
$(SONIC_SUPERVISORD_UTILITIES_RS)_DEP_FILES := $(DEP_FILES)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
SONIC_SUPERVISORD_UTILITIES_RS_VERSION = 1.0.0
2+
SONIC_SUPERVISORD_UTILITIES_RS_NAME = sonic-supervisord-utilities-rs
3+
4+
SONIC_SUPERVISORD_UTILITIES_RS = $(SONIC_SUPERVISORD_UTILITIES_RS_NAME)_$(SONIC_SUPERVISORD_UTILITIES_RS_VERSION)_$(CONFIGURED_ARCH).deb
5+
$(SONIC_SUPERVISORD_UTILITIES_RS)_SRC_PATH = $(SRC_PATH)/sonic-supervisord-utilities-rs
6+
$(SONIC_SUPERVISORD_UTILITIES_RS)_VERSION = $(SONIC_SUPERVISORD_UTILITIES_RS_VERSION)
7+
$(SONIC_SUPERVISORD_UTILITIES_RS)_NAME = $(SONIC_SUPERVISORD_UTILITIES_RS_NAME)
8+
$(SONIC_SUPERVISORD_UTILITIES_RS)_DEPENDS = $(LIBSWSSCOMMON_DEV)
9+
$(SONIC_SUPERVISORD_UTILITIES_RS)_RDEPENDS = $(LIBSWSSCOMMON)
10+
11+
SONIC_DPKG_DEBS += $(SONIC_SUPERVISORD_UTILITIES_RS)
12+
13+
SONIC_SUPERVISORD_UTILITIES_RS_DBG = $(SONIC_SUPERVISORD_UTILITIES_RS_NAME)-dbgsym_$(SONIC_SUPERVISORD_UTILITIES_RS_VERSION)_$(CONFIGURED_ARCH).deb
14+
$(eval $(call add_derived_package,$(SONIC_SUPERVISORD_UTILITIES_RS),$(SONIC_SUPERVISORD_UTILITIES_RS_DBG)))

0 commit comments

Comments
 (0)