From 0e72d71a67f8d29df926af2a8c249a521ee62680 Mon Sep 17 00:00:00 2001 From: Brad Bishop Date: Wed, 12 Aug 2020 07:03:47 -0400 Subject: meta-phosphor: systemd-policy: move to systemd Don't install systemd policy if: - systemd is not being installed - a non phosphor distro Use RRECOMMENDS for easy opt-out in Phosphor based distros. (From meta-phosphor rev: 2641990831230d85ee7cb5fdc29450ad561a4799) Change-Id: Ie3154cc6ee8d257ffa92463c49d3755a15379663 Signed-off-by: Brad Bishop --- .../systemd/phosphor-systemd-policy.bb | 20 ++++++++++++++ .../journald-maxlevel-policy.conf | 6 +++++ .../service-restart-policy.conf | 31 ++++++++++++++++++++++ .../recipes-core/systemd/systemd_%.bbappend | 2 ++ .../packagegroups/packagegroup-obmc-apps.bb | 1 - .../systemd-policy/phosphor-systemd-policy.bb | 20 -------------- .../journald-maxlevel-policy.conf | 6 ----- .../service-restart-policy.conf | 31 ---------------------- 8 files changed, 59 insertions(+), 58 deletions(-) create mode 100644 meta-phosphor/recipes-core/systemd/phosphor-systemd-policy.bb create mode 100644 meta-phosphor/recipes-core/systemd/phosphor-systemd-policy/journald-maxlevel-policy.conf create mode 100644 meta-phosphor/recipes-core/systemd/phosphor-systemd-policy/service-restart-policy.conf delete mode 100644 meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb delete mode 100644 meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy/journald-maxlevel-policy.conf delete mode 100644 meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy/service-restart-policy.conf (limited to 'meta-phosphor') diff --git a/meta-phosphor/recipes-core/systemd/phosphor-systemd-policy.bb b/meta-phosphor/recipes-core/systemd/phosphor-systemd-policy.bb new file mode 100644 index 000000000..21433976b --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/phosphor-systemd-policy.bb @@ -0,0 +1,20 @@ +SUMMARY = "Phosphor systemd configuration overrides" +DESCRIPTION = "Overrides for systemd and its applications" +PR = "r1" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +DEPENDS += "systemd" + +SRC_URI += "file://service-restart-policy.conf" +SRC_URI += "file://journald-maxlevel-policy.conf" + +FILES_${PN} += "${systemd_unitdir}/system.conf.d/service-restart-policy.conf" +FILES_${PN} += "${systemd_unitdir}/journald.conf.d/journald-maxlevel-policy.conf" + + +do_install() { + install -m 644 -D ${WORKDIR}/service-restart-policy.conf ${D}${systemd_unitdir}/system.conf.d/service-restart-policy.conf + install -m 644 -D ${WORKDIR}/journald-maxlevel-policy.conf ${D}${systemd_unitdir}/journald.conf.d/journald-maxlevel-policy.conf +} diff --git a/meta-phosphor/recipes-core/systemd/phosphor-systemd-policy/journald-maxlevel-policy.conf b/meta-phosphor/recipes-core/systemd/phosphor-systemd-policy/journald-maxlevel-policy.conf new file mode 100644 index 000000000..f5f3d0ff1 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/phosphor-systemd-policy/journald-maxlevel-policy.conf @@ -0,0 +1,6 @@ +# Don't store "debug" messages, only "info" and below. +# Reference: journald.conf(5) + +[Journal] +MaxLevelStore=info +MaxLevelSyslog=info diff --git a/meta-phosphor/recipes-core/systemd/phosphor-systemd-policy/service-restart-policy.conf b/meta-phosphor/recipes-core/systemd/phosphor-systemd-policy/service-restart-policy.conf new file mode 100644 index 000000000..54516c2d4 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/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 permanent 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/recipes-core/systemd/systemd_%.bbappend b/meta-phosphor/recipes-core/systemd/systemd_%.bbappend index 1aabe378f..f1046de20 100644 --- a/meta-phosphor/recipes-core/systemd/systemd_%.bbappend +++ b/meta-phosphor/recipes-core/systemd/systemd_%.bbappend @@ -25,3 +25,5 @@ ALTERNATIVE_${PN} += "init" ALTERNATIVE_TARGET[init] = "${rootlibexecdir}/systemd/systemd" ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init" ALTERNATIVE_PRIORITY[init] ?= "300" + +RRECOMMENDS_${PN}_append_openbmc-phosphor = " phosphor-systemd-policy" diff --git a/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb b/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb index 41164a5dd..057509d1a 100644 --- a/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb +++ b/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb @@ -44,7 +44,6 @@ RDEPENDS_${PN}-extras = " \ phosphor-nslcd-authority-cert-config \ obmc-ikvm \ phosphor-dbus-monitor \ - phosphor-systemd-policy \ " SUMMARY_${PN}-devtools = "Development tools" diff --git a/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb b/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb deleted file mode 100644 index 21433976b..000000000 --- a/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Phosphor systemd configuration overrides" -DESCRIPTION = "Overrides for systemd and its applications" -PR = "r1" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" - -DEPENDS += "systemd" - -SRC_URI += "file://service-restart-policy.conf" -SRC_URI += "file://journald-maxlevel-policy.conf" - -FILES_${PN} += "${systemd_unitdir}/system.conf.d/service-restart-policy.conf" -FILES_${PN} += "${systemd_unitdir}/journald.conf.d/journald-maxlevel-policy.conf" - - -do_install() { - install -m 644 -D ${WORKDIR}/service-restart-policy.conf ${D}${systemd_unitdir}/system.conf.d/service-restart-policy.conf - install -m 644 -D ${WORKDIR}/journald-maxlevel-policy.conf ${D}${systemd_unitdir}/journald.conf.d/journald-maxlevel-policy.conf -} diff --git a/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy/journald-maxlevel-policy.conf b/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy/journald-maxlevel-policy.conf deleted file mode 100644 index f5f3d0ff1..000000000 --- a/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy/journald-maxlevel-policy.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Don't store "debug" messages, only "info" and below. -# Reference: journald.conf(5) - -[Journal] -MaxLevelStore=info -MaxLevelSyslog=info diff --git a/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy/service-restart-policy.conf b/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy/service-restart-policy.conf deleted file mode 100644 index 54516c2d4..000000000 --- a/meta-phosphor/recipes-phosphor/systemd-policy/phosphor-systemd-policy/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 permanent fail state. -# -# See systemd-system.conf(5) for details on the conf files - -[Manager] -DefaultRestartSec=1s -DefaultStartLimitBurst=2 -DefaultStartLimitIntervalSec=30s -- cgit v1.2.3