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 <geissonator@yahoo.com>
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 56d78d1..5c184ba 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 @@
 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 0000000..34abf50
--- /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 0000000..0bd049b
--- /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