From 8069f0b1938fb66b10098627a3e3166f69c0e166 Mon Sep 17 00:00:00 2001
From: Timo Teras <timo.teras@iki.fi>
Date: Thu, 26 Feb 2009 11:03:29 +0200
Subject: [PATCH] initramfs: bootchart integration with init

modifications to makefile and initramfs init that were left out
from previous commit.
---
 alpine.mk      |  6 +++++-
 initramfs-init | 13 +++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/alpine.mk b/alpine.mk
index 6a5f29c44ed2..627d3eb42390 100755
--- a/alpine.mk
+++ b/alpine.mk
@@ -162,6 +162,10 @@ $(INITFS_DIR)/init: initramfs-init $(INITFS_DIRSTAMP)
 	@echo "==> initramfs: init script"
 	@cp initramfs-init "$(INITFS_DIR)/init"
 
+$(INITFS_DIR)/sbin/bootchartd: bootchartd $(INITFS_DIRSTAMP)
+	@echo "==> initramfs: bootchartd"
+	@cp bootchartd "$(INITFS_DIR)/sbin/bootchartd"
+
 ifeq ($(APK_BIN),)
 $(INITFS_DIR)/sbin/apk: $(APK_TOOLS_APK) $(INITFS_DIRSTAMP)
 	@echo "==> initramfs: $(notdir $(APK_TOOLS_APK))"
@@ -190,7 +194,7 @@ $(INITFS_MODDIRSTAMP): $(INITFS_DIRSTAMP) $(INITFS_MODFILES) $(MODLOOP_DIRSTAMP)
 	@depmod $(KERNEL) -b $(INITFS_DIR)
 	@touch $(INITFS_MODDIRSTAMP)
 
-$(INITFS): $(INITFS_DIRSTAMP) $(INITFS_DIR)/init $(INITFS_DIR)/sbin/apk $(INITFS_MODDIRSTAMP) $(INITFS_BASEFILES)
+$(INITFS): $(INITFS_DIRSTAMP) $(INITFS_DIR)/init $(INITFS_DIR)/sbin/bootchartd $(INITFS_DIR)/sbin/apk $(INITFS_MODDIRSTAMP) $(INITFS_BASEFILES)
 	@echo "==> initramfs: creating $(notdir $(INITFS))"
 	@(cd $(INITFS_DIR) && find . | cpio -o -H newc | gzip -9) > $(INITFS)
 
diff --git a/initramfs-init b/initramfs-init
index 841e0759fba9..4bd64dfcb1cf 100755
--- a/initramfs-init
+++ b/initramfs-init
@@ -70,6 +70,13 @@ for i in `cat /proc/cmdline` ; do
 	esac
 done
 
+# start bootcharting if wanted
+if [ -n "$KOPT_chart" ]; then
+	ebegin "Starting bootchart logging"
+	/sbin/bootchartd init "$NEWROOT"
+	eend 0
+fi
+
 ALPINE_DEV=${KOPT_alpine_dev%%:*}
 ALPINE_DEV_FS=${KOPT_alpine_dev##*:}
 if [ "$ALPINE_DEV_FS" = "$ALPINE_DEV" ]; then
@@ -193,6 +200,12 @@ if ! [ -f $NEWROOT/etc/apk/repositories ]; then
 	cp /etc/apk/repositories $NEWROOT/etc/apk/repositories
 fi
 
+# newroot is done, signal bootchartd to relocate there
+# if bootcharting is done
+if [ -n "$KOPT_chart" ]; then
+	killall -USR2 bootchartd
+fi
+
 # switch over to new root
 cat /proc/mounts | while read DEV DIR TYPE OPTS ; do
 	if [ "$DIR" != "/" -a "$DIR" != "$NEWROOT" -a -d "$DIR" ]; then
-- 
GitLab