Skip to content

Commit fe773e2

Browse files
[nvidia] make sure shared storage with syncd is cleared on restarts
Signed-off-by: Stepan Blyschak <[email protected]>
1 parent 03c02e3 commit fe773e2

File tree

4 files changed

+32
-6
lines changed

4 files changed

+32
-6
lines changed

files/build_templates/docker_image_ctl.j2

+7-6
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,9 @@ function waitForAllInstanceDatabaseConfigJsonFilesReady()
157157
done
158158
fi
159159
# Delay a second to allow all instance database_config.json files to be completely generated and fully accessible.
160-
# This delay is needed to make sure that the database_config.json files are correctly rendered from j2 template
160+
# This delay is needed to make sure that the database_config.json files are correctly rendered from j2 template
161161
# files ( renderning takes some time )
162-
sleep 1
162+
sleep 1
163163
fi
164164
}
165165
{%- endif %}
@@ -240,7 +240,7 @@ function postStartAction()
240240
mv $WARM_DIR/dump.rdb $WARM_DIR/dump.rdb.old
241241
else
242242
# If there is a config_db.json dump file, load it.
243-
if [ -r /etc/sonic/config_db$DEV.json ]; then
243+
if [ -r /etc/sonic/config_db$DEV.json ]; then
244244

245245
if [ -r /etc/sonic/init_cfg.json ]; then
246246
$SONIC_CFGGEN -j /etc/sonic/init_cfg.json -j /etc/sonic/config_db$DEV.json --write-to-db
@@ -323,7 +323,7 @@ start() {
323323

324324
{%- if sonic_asic_platform == "broadcom" %}
325325
{%- if docker_container_name == "syncd" %}
326-
# Set the SYNCD_SHM_SIZE if this variable not defined
326+
# Set the SYNCD_SHM_SIZE if this variable not defined
327327
BRCM_PLATFORM_COMMON_DIR=/usr/share/sonic/device/x86_64-broadcom_common
328328
SYNCD_SHM_INI=$BRCM_PLATFORM_COMMON_DIR/syncd_shm.ini
329329

@@ -530,14 +530,15 @@ start() {
530530
{%- if docker_container_name == "syncd" %}
531531
-v /var/log/mellanox:/var/log/mellanox:rw \
532532
-v mlnx_sdk_socket:/var/run/sx_sdk \
533-
-v mlnx_sdk_ready:/tmp \
533+
-v /tmp/nv-syncd-shared/:/tmp \
534534
-v /dev/shm:/dev/shm:rw \
535535
-v /var/log/sai_failure_dump:/var/log/sai_failure_dump:rw \
536536
-e SX_API_SOCKET_FILE=/var/run/sx_sdk/sx_api.sock \
537537
{%- elif docker_container_name == "pmon" %}
538538
-v /var/run/hw-management:/var/run/hw-management:rw \
539539
-v mlnx_sdk_socket:/var/run/sx_sdk \
540-
-v mlnx_sdk_ready:/tmp \
540+
-v /tmp/nv-syncd-shared/:/tmp \
541+
-v /dev/shm:/dev/shm:rw \
541542
-e SX_API_SOCKET_FILE=/var/run/sx_sdk/sx_api.sock \
542543
-v /dev/shm:/dev/shm:rw \
543544
{%- else %}

files/build_templates/per_namespace/syncd.service.j2

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ After=updategraph.service
1919
BindsTo=sonic.target
2020
After=sonic.target
2121
Before=ntp-config.service
22+
{% if sonic_asic_platform == 'mellanox' %}
23+
Requires=nv-syncd-shared.service
24+
After=nv-syncd-shared.service
25+
{% endif %}
2226

2327
[Service]
2428
User=root

files/build_templates/sonic_debian_extension.j2

+4
Original file line numberDiff line numberDiff line change
@@ -953,6 +953,10 @@ MLNX_SONIC_PLATFORM_PY3_WHEEL_NAME=$(basename {{mlnx_platform_api_py3_wheel_path
953953
sudo cp {{mlnx_platform_api_py3_wheel_path}} $FILESYSTEM_ROOT/$MLNX_SONIC_PLATFORM_PY3_WHEEL_NAME
954954
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install $MLNX_SONIC_PLATFORM_PY3_WHEEL_NAME
955955
sudo rm -rf $FILESYSTEM_ROOT/$MLNX_SONIC_PLATFORM_PY3_WHEEL_NAME
956+
957+
# Install service that manages Nvidia specific shared storage
958+
sudo cp platform/mellanox/nv-syncd-shared/nv-syncd-shared.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM/
959+
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable nv-syncd-shared
956960
{% endif %}
957961

958962
{%- if SONIC_ROUTING_STACK == "frr" %}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[Unit]
2+
Description=Manage Nvidia specific syncd shared volume
3+
Requires=docker.service
4+
After=docker.service
5+
BindsTo=sonic.target
6+
After=sonic.target
7+
PartOf=syncd.service
8+
9+
[Service]
10+
Type=oneshot
11+
RemainAfterExit=yes
12+
ExecStart=rm -rf /tmp/nv-syncd-shared/
13+
ExecStart=mkdir -p /tmp/nv-syncd-shared/
14+
15+
[Install]
16+
WantedBy=sonic.target
17+

0 commit comments

Comments
 (0)