This follows the same protocol as between dracut and systemd. With this patch allows us to do some basic profiling of our initrd: % systemd-analyze Startup finished in 710ms (kernel) + 2445ms (initrd) + 21214ms (userspace) = 24370ms To get the timestamp as accurate as possible, a few things are shuffled around to do the measurement as early in init as we can. A patch to systemd is also required, which I will submit if this is accepted. Signed-off-by: Tom Gundersen <teg@jklm.no> --- init | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/init b/init index 8c8709c..9bcc21a 100644 --- a/init +++ b/init @@ -4,10 +4,12 @@ PATH=/usr/sbin:/usr/bin:/sbin:/bin busybox --install -s +mount -t proc proc /proc -o nosuid,noexec,nodev + +RD_TIMESTAMP=$(/bin/cat /proc/uptime) + . /init_functions -mkdir -p /new_root -mount -t proc proc /proc -o nosuid,noexec,nodev mount -t sysfs sys /sys -o nosuid,noexec,nodev if grep -q devtmpfs /proc/filesystems 2>/dev/null; then mount -n -t devtmpfs udev /dev -o mode=0755,size=10M,nosuid @@ -80,6 +82,7 @@ if [ "${break}" = "y" ]; then fi # Mount root at /new_root +mkdir -p /new_root ${mount_handler:-default_mount_handler} /new_root init=${init:-/sbin/init} @@ -113,6 +116,7 @@ for d in proc sys dev run; do umount /${d} fi done -exec env -i TERM=$TERM /sbin/switch_root -c /dev/console /new_root ${init} "$@" + +exec env -i TERM="$TERM" RD_TIMESTAMP="$RD_TIMESTAMP" /sbin/switch_root -c /dev/console /new_root ${init} "$@" # vim: set ft=sh ts=4 sw=4 et: -- 1.7.6