friendly-recovery slows down boot time

Bug #1459475 reported by Phillip Susi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
friendly-recovery (Ubuntu)
Fix Released
Low
Martin Pitt

Bug Description

I noticed that systemd-fsck-root.service runs very late in my boot, which slows it down. This turns out to be due to friendly-recovery.service being After=udev settle, and Before=systemd-fsck-root.service. This causes fsck-root to wait until after udev settle, which takes quite some time ( which is probably another issue ), even though during normal boots, friendly-recovery is not run at all due to its Condition depending on the kernel command line recovery argument.

Is there a way to reorganize the relationships so that the transitive ordering is not triggered when friendly-recovery is not run at all?

Tags: systemd-boot
Phillip Susi (psusi)
tags: added: systemd-boot
Revision history for this message
Martin Pitt (pitti) wrote :

Well spotted. I think we can just drop the After=systemd-udev-settle.service. I need to think about whether we actually need it (the upstart job called udev settle), but if so, we could just call that in ExecStartPre= instead of Before=.

no longer affects: systemd (Ubuntu)
Changed in friendly-recovery (Ubuntu):
status: New → Triaged
importance: Undecided → Low
assignee: nobody → Martin Pitt (pitti)
status: Triaged → In Progress
Revision history for this message
Phillip Susi (psusi) wrote :

While we're at it, do you have any idea how to trace why it takes 6 seconds for udev to settle? That seems like a long time to be fiddling around running hotplug scripts.

Revision history for this message
Martin Pitt (pitti) wrote : Re: [Bug 1459475] Re: friendly-recovery slows down boot time

Phillip Susi [2015-05-28 12:48 -0000]:
> While we're at it, do you have any idea how to trace why it takes 6
> seconds for udev to settle?

That's mostly "don't shoot the messenger". Usually it's kernel drivers
taking long to initialize (check dmesg for what comes online at what
point); occasionally it's also a bug in some udev callout.

You can boot with "debug" to get events, drivers, udev rules etc.
shown in dmesg verbosely, perhaps that reveals something?

Martin
--
Martin Pitt | http://www.piware.de
Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)

Martin Pitt (pitti)
Changed in friendly-recovery (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package friendly-recovery - 0.2.31

---------------
friendly-recovery (0.2.31) wily; urgency=medium

  * debian/friendly-recovery.service: Don't put this between
    systemd-udev-settle.service and systemd-fsck-root.service, to avoid
    blocking fsck'ing the root partition on udev-settle. Only call udevadm
    settle when we are actually being run. (LP: #1459475)
  * Bump Standards-Version to 3.9.6; no changes necessary.

 -- Martin Pitt <email address hidden> Mon, 01 Jun 2015 15:45:51 +0200

Changed in friendly-recovery (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.