[1/2] systemd: don't install systemd-hwdb-update.service

Message ID 20191007193805.13219-1-ross.burton@intel.com
State Superseded
Headers show
Series
  • [1/2] systemd: don't install systemd-hwdb-update.service
Related show

Commit Message

Ross Burton Oct. 7, 2019, 7:38 p.m.
This service file is designed to do first-boot initialisation of the udev hwdb
database, but the condition logic to fire it is suboptimal: it can fire if not
needed, and can also not fire if needed.  Specifically it will always fire on
first boot, even though as part of rootfs generation we build the hwdb database.
On slow machines this can take a significant amount of time, the pathological
case being qemumips where the service can time out after 90 seconds of
processing.

Other distributions have also noticed this problem (specifically, at least
Debian and Clear) and solve it by using traditional postinst scripts to generate
the hwdb (which we already do) and deleting the service file (which we don't).

Finish the fix and improve boot times across all boards by deleting the service
file.

[ YOCTO #13581 ]

Signed-off-by: Ross Burton <ross.burton@intel.com>

---
 meta/recipes-core/systemd/systemd_243.bb | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

-- 
2.20.1

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-core/systemd/systemd_243.bb b/meta/recipes-core/systemd/systemd_243.bb
index b9097593f17..a4a744ce9ba 100644
--- a/meta/recipes-core/systemd/systemd_243.bb
+++ b/meta/recipes-core/systemd/systemd_243.bb
@@ -297,13 +297,10 @@  do_install() {
 	# install default policy for presets
 	# https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
 	install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset
-}
 
-do_install_append () {
-	# Mips qemu is extremely slow, allow more time for the hwdb update
-	# This is a workaround until https://github.com/systemd/systemd/issues/13581 is resolved
-	[ ! -e ${D}${systemd_unitdir}/system/systemd-hwdb-update.service ] ||
-		sed -i -e s#TimeoutSec=90s#TimeoutSec=180s# ${D}${systemd_unitdir}/system/systemd-hwdb-update.service
+    # We use package postinsts for the hwdb update, as the update service is
+    # easily triggered for no reason and will slow down boots.
+    find ${D} -name systemd-hwdb-update.service -delete
 }
 
 python populate_packages_prepend (){