From 3e4d0942a9b093e201f9f343a43d106cd3733ed3 Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Thu, 19 Jul 2018 11:44:03 -0700 Subject: Move phosphor overrides of systemd into own recipe Phosphor specific overrides to systemd should be stored within its own recipe and pulled in via the phosphor layer. This helps distinguish systemd specific overrides with phosphor overrides. Tested: Verified service-restart-policy.conf was still pulled in as expected in witherspoon QEMU Change-Id: I32110fc2edd3abd2bb0008c63dd4ad7828b762b8 Signed-off-by: Andrew Geissler --- .../systemd/systemd/service-restart-policy.conf | 31 ---------------------- .../common/recipes-core/systemd/systemd_%.bbappend | 3 --- .../packagegroups/packagegroup-obmc-apps.bb | 1 + .../systemd-policy/phosphor-systemd-policy.bb | 15 +++++++++++ .../service-restart-policy.conf | 31 ++++++++++++++++++++++ 5 files changed, 47 insertions(+), 34 deletions(-) delete mode 100644 meta-phosphor/common/recipes-core/systemd/systemd/service-restart-policy.conf create mode 100644 meta-phosphor/common/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb create mode 100644 meta-phosphor/common/recipes-phosphor/systemd-policy/phosphor-systemd-policy/service-restart-policy.conf diff --git a/meta-phosphor/common/recipes-core/systemd/systemd/service-restart-policy.conf b/meta-phosphor/common/recipes-core/systemd/systemd/service-restart-policy.conf deleted file mode 100644 index 0bd049b41..000000000 --- a/meta-phosphor/common/recipes-core/systemd/systemd/service-restart-policy.conf +++ /dev/null @@ -1,31 +0,0 @@ -# This file overrides some defaults for systemd -# -# - Change the RestartSec from 100ms to 1s. -# When a service hits a failure, our new debug collection service kicks -# in. When a core file is involved, it's been found that generating 5 core -# files within ~500ms puts a huge strain on the BMC. Also, if the bmc is -# going to get a fix on a restart of a service, the more time the better -# (think retries on device driver scenarios). -# -# - Change the StartLimitBurst to 2 -# Five just seems excessive for our services in openbmc. In all fail -# scenarios seen so far (other then with phosphor-hwmon), either -# restarting once does the job or restarting all 5 times does not help -# and we just end up hitting the 5 limit anyway. -# -# - Change the StartLimitIntervalSec to 30s -# The BMC CPU performance is already challenged. When a service is -# failing and a core dump is being generated and collected into a dump, -# it's even more challenged. Recent failures have shown situations where -# the service does not fail again until 15-20 seconds after the initial -# failure which means the default of 10s for this results in the service -# being restarted indefinitely. Change this to 30s to only allow a service -# to be restarted StartLimitBurst times within a 30s interval before -# being put in a permenant fail state. -# -# See systemd-system.conf(5) for details on the conf files - -[Manager] -DefaultRestartSec=1s -DefaultStartLimitBurst=2 -DefaultStartLimitIntervalSec=30s diff --git a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend index 07b3038d0..b403069a5 100644 --- a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend +++ b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend @@ -7,7 +7,6 @@ PACKAGECONFIG_remove = "machined hibernate ldconfig binfmt backlight localed \ manpages" FILESEXTRAPATHS_append := "${THISDIR}/${PN}:" SRC_URI += "file://default.network" -SRC_URI += "file://service-restart-policy.conf" SRC_URI += "file://0001-sd-bus-Don-t-automatically-add-ObjectManager.patch" SRC_URI += "file://0003-basic-Factor-out-string-checking-from-name_to_prefix.patch" SRC_URI += "file://0004-basic-Use-path-escaping-when-mangling-path-instances.patch" @@ -17,9 +16,7 @@ SRC_URI += "file://0005-dont-return-error-if-unable-to-create-network-namespace. RRECOMMENDS_${PN} += "obmc-targets" FILES_${PN} += "${systemd_unitdir}/network/default.network" -FILES_${PN} += "${systemd_unitdir}/system.conf.d/service-restart-policy.conf" do_install_append() { install -m 644 ${WORKDIR}/default.network ${D}${systemd_unitdir}/network/ - install -m 644 -D ${WORKDIR}/service-restart-policy.conf ${D}${systemd_unitdir}/system.conf.d/service-restart-policy.conf } diff --git a/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb b/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb index 56d78d138..5c184babf 100644 --- a/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb +++ b/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb @@ -39,6 +39,7 @@ SUMMARY_${PN}-extras = "Extra features" RDEPENDS_${PN}-extras = " \ phosphor-rest \ phosphor-dbus-monitor \ + phosphor-systemd-policy \ " SUMMARY_${PN}-extrasdev = "Development features" diff --git a/meta-phosphor/common/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb b/meta-phosphor/common/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb new file mode 100644 index 000000000..34abf5008 --- /dev/null +++ b/meta-phosphor/common/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb @@ -0,0 +1,15 @@ +SUMMARY = "Phosphor systemd configuration overrides" +DESCRIPTION = "Overrides for systemd and its applications" +PR = "r1" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" + +DEPENDS += "systemd" + +SRC_URI = "file://service-restart-policy.conf" +FILES_${PN} += "${systemd_unitdir}/system.conf.d/service-restart-policy.conf" + +do_install() { + install -m 644 -D ${WORKDIR}/service-restart-policy.conf ${D}${systemd_unitdir}/system.conf.d/service-restart-policy.conf +} diff --git a/meta-phosphor/common/recipes-phosphor/systemd-policy/phosphor-systemd-policy/service-restart-policy.conf b/meta-phosphor/common/recipes-phosphor/systemd-policy/phosphor-systemd-policy/service-restart-policy.conf new file mode 100644 index 000000000..0bd049b41 --- /dev/null +++ b/meta-phosphor/common/recipes-phosphor/systemd-policy/phosphor-systemd-policy/service-restart-policy.conf @@ -0,0 +1,31 @@ +# This file overrides some defaults for systemd +# +# - Change the RestartSec from 100ms to 1s. +# When a service hits a failure, our new debug collection service kicks +# in. When a core file is involved, it's been found that generating 5 core +# files within ~500ms puts a huge strain on the BMC. Also, if the bmc is +# going to get a fix on a restart of a service, the more time the better +# (think retries on device driver scenarios). +# +# - Change the StartLimitBurst to 2 +# Five just seems excessive for our services in openbmc. In all fail +# scenarios seen so far (other then with phosphor-hwmon), either +# restarting once does the job or restarting all 5 times does not help +# and we just end up hitting the 5 limit anyway. +# +# - Change the StartLimitIntervalSec to 30s +# The BMC CPU performance is already challenged. When a service is +# failing and a core dump is being generated and collected into a dump, +# it's even more challenged. Recent failures have shown situations where +# the service does not fail again until 15-20 seconds after the initial +# failure which means the default of 10s for this results in the service +# being restarted indefinitely. Change this to 30s to only allow a service +# to be restarted StartLimitBurst times within a 30s interval before +# being put in a permenant fail state. +# +# See systemd-system.conf(5) for details on the conf files + +[Manager] +DefaultRestartSec=1s +DefaultStartLimitBurst=2 +DefaultStartLimitIntervalSec=30s -- cgit v1.2.3