Table of Contents

What

Debian/Ubuntu Boot Performance Sprint

Where

Canonical's Millbank Office, London, UK

When

Why

Investigate creating a joint Ubuntu-Debian team to look into how both distributions can work together to improve boot performance.

Who

Topics of Discussion

Notes

Considerations for Transitioning Debian to Use upstart

Transition from sysvinit to upstart

sysvinit-upstart relationship drawing

/etc/inittab Support

Reviewed of Debian Unstable Bootchart

service Command

service Backend / update-rc.d Extensions Requirements

  1. Enable/disable service (user-facing)

    • [2345]/Sxx <-> [2345]/K(100-xx)

  2. Remove link (usually 0/6, but not always) (maintainer script)

    • R/[SK]xx -> null

  3. Add link, e.g. due to bugs such as copying RH runlevel setup (maintainer script)

    • null -> R/[SK]xx

  4. Move link in sequence (maintainer script)

    • R/[SK]xx -> R/[SK]yy (atomic)

  5. Move link between runlevels (maintainer script)

    • X/Sxx -> Y/Syy (atomic)

update-rc.d Syntax

Explored several possibilities for update-rc.d syntax to edit links: general idea is that you have one correct current state, but also some previous valid states which should be considered as package-generated rather than user-configured

update-rc.d service start 80 S . was start 99 2 3 4 5 .

if dpkg --compare-versions "$2" lt blah; then
    PREV='was start 99 2 3 4 5 .'
fi
update-rc.d start 80 S . $PREV

update-rc.d service start 30 2 3 4 5 .
if dpkg --compare-versions "$2" lt blah; then
    update-rc.d service replace start 20 2 3 4 5 . 30 2 3 4 5 .
fi

Actions Required by service Backend

Debian sysvinit ToDo List

Bootchart Package

Dash as /bin/sh

insserv in Ubuntu to Validate LSB-header-declared Dependencies?

<cjwatson@sarantium ~>$ /usr/share/insserv/check-initd-order
error: Unable to read /etc/rc2.d/S81update-motd at /usr/share/insserv/check-initd-order line 373.
LSB header missing in /etc/rcS.d/S07linux-restricted-modules-common
Incorrect order checkroot@20 > /etc/rcS.d/S15module-init-tools15
LSB header missing in /etc/rc2.d/S10powernowd.early
Incorrect order avahi@50 > /etc/rc2.d/S28libvirt-bin28
LSB header missing in /etc/rc2.d/S30gdm
error: Unable to read /etc/rc2.d/S81update-motd at /usr/share/insserv/check-initd-order line 373.
LSB header missing in /etc/rc2.d/S81update-motd
LSB header missing in /etc/rc2.d/S99acpi-support
<cjwatson@sarantium ~>$ /usr/share/insserv/check-initd-order -k
LSB header missing in /etc/rc6.d/K01gdm

Dependency graph: /usr/share/insserv/check-initd-order -g | dot -Tpdf > init.pdf

LSB headers but no dependencies: kvm (Ubuntu #391121), apparmor

Communication Plan

FoundationsTeam/BootPerformance/DebianUbuntuSprint (last edited 2009-07-08 15:30:01 by e180076113)