From 62e705249f9680ee023e38aa8b047180dd53254d Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Thu, 21 Jun 2018 15:10:21 -0700 Subject: [PATCH] Enable sairedis counter thread in 3 minutes after SONiC was started --- files/build_templates/enable_counters.service | 7 +++++++ files/build_templates/enable_counters.timer | 9 +++++++++ files/build_templates/snmp.service.j2 | 7 ++----- files/build_templates/snmp.timer | 9 +++++++++ files/build_templates/sonic_debian_extension.j2 | 8 ++++++++ src/sonic-sairedis | 2 +- src/sonic-swss | 2 +- src/sonic-swss-common | 2 +- 8 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 files/build_templates/enable_counters.service create mode 100644 files/build_templates/enable_counters.timer create mode 100644 files/build_templates/snmp.timer diff --git a/files/build_templates/enable_counters.service b/files/build_templates/enable_counters.service new file mode 100644 index 00000000000..98db4da3d2a --- /dev/null +++ b/files/build_templates/enable_counters.service @@ -0,0 +1,7 @@ +[Unit] +Description=Enable SONiC counters + +[Service] +Type=oneshot +ExecStart=/usr/bin/counterpoll queue enable +RemainAfterExit=yes diff --git a/files/build_templates/enable_counters.timer b/files/build_templates/enable_counters.timer new file mode 100644 index 00000000000..7382a1658c1 --- /dev/null +++ b/files/build_templates/enable_counters.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Delays the SONiC counters gathering until SONiC has started + +[Timer] +OnBootSec=3min +Unit=enable_counters.service + +[Install] +WantedBy=timers.target diff --git a/files/build_templates/snmp.service.j2 b/files/build_templates/snmp.service.j2 index f0612a9cfcb..93ef869b86e 100644 --- a/files/build_templates/snmp.service.j2 +++ b/files/build_templates/snmp.service.j2 @@ -1,12 +1,9 @@ [Unit] Description=SNMP container -Requires=updategraph.service swss.service -After=updategraph.service swss.service +Requires=updategraph.service swss.service enable_counters.service +After=updategraph.service swss.service enable_counters.service [Service] ExecStartPre=/usr/bin/{{docker_container_name}}.sh start ExecStart=/usr/bin/{{docker_container_name}}.sh attach ExecStop=/usr/bin/{{docker_container_name}}.sh stop - -[Install] -WantedBy=multi-user.target diff --git a/files/build_templates/snmp.timer b/files/build_templates/snmp.timer new file mode 100644 index 00000000000..464cf01459b --- /dev/null +++ b/files/build_templates/snmp.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Delays snmp container until SONiC has started + +[Timer] +OnBootSec=3min 30 sec +Unit=snmp.service + +[Install] +WantedBy=timers.target diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 698a29ec22a..b4a45ed1614 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -276,6 +276,14 @@ sudo LANG=C chroot $FILESYSTEM_ROOT fuser -km /sys || true sudo LANG=C chroot $FILESYSTEM_ROOT umount -lf /sys {% endif %} +# Copy systemd timer configuration +# It implements delayed start of services +sudo cp $BUILD_TEMPLATES/enable_counters.timer $FILESYSTEM_ROOT/etc/systemd/system/ +sudo cp $BUILD_TEMPLATES/enable_counters.service $FILESYSTEM_ROOT/etc/systemd/system/ +sudo cp $BUILD_TEMPLATES/snmp.timer $FILESYSTEM_ROOT/etc/systemd/system/ +sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable enable_counters.timer +sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable snmp.timer + sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get remove -y python-dev sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get clean -y sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get autoremove -y diff --git a/src/sonic-sairedis b/src/sonic-sairedis index 4ef45eed56a..5fee797a1d2 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit 4ef45eed56a4ec34c225d2a37cc02efc2131033b +Subproject commit 5fee797a1d2ae4d4ba7d7c7ea8cc79578f5c19f5 diff --git a/src/sonic-swss b/src/sonic-swss index 4df9c289a6c..98ad0bd500f 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 4df9c289a6c2d41e4dee09f3055f0ac6d8e98ded +Subproject commit 98ad0bd500fc23fb61197e0ff8390d332216c9e8 diff --git a/src/sonic-swss-common b/src/sonic-swss-common index b4367a440fb..8c5dab6b341 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit b4367a440fb7b188c60774808195164438061bba +Subproject commit 8c5dab6b341752b4bda3f63917a9c143df778322