From: Mingli Yu <mingli...@windriver.com> When boot with "init=/sbin/bootchartd" as below: # runqemu qemux86 bootparams="init=/sbin/bootchartd"
There are two bootchartd process after boot [1]. # ps -ef | grep bootchart root 101 1 0 03:27 ? 00:00:00 /bin/sh /sbin/bootchartd root 103 101 8 03:27 ? 00:00:02 /lib64/bootchart/bootchart-collector 50 root 106 1 0 03:27 ? 00:00:00 /bin/sh /sbin/bootchartd root 792 106 0 03:27 ? 00:00:00 /lib64/bootchart/bootchart-collector --usleep 1000000 root 794 725 0 03:27 ttyS0 00:00:00 grep bootchart # /sbin/bootchartd stop [bootchart] bootchart-collector started as pid 596 with 2 args: [bootchart] '--dump' [bootchart] '/tmp/bootchart.3lXpVDAq3v' [bootchart] Extracting profile data from pid 204 [bootchart] map 0xbed9a000 -> 0xbedbb000 size: 132k from 'bed9a000' 'bedbb000' [bootchart] read 135168 bytes of 135168 [bootchart] reading 150 chunks (of 150) ... [bootchart] wrote 18760 kbB [bootchart] bootchart-collector pid: 596 unmounted proc / clean exit But there still one process exist after the above stop command finish. # ps -ef | grep bootchartd root 202 1 0 09:09 ? 00:00:00 /bin/sh /sbin/bootchartd root 629 516 0 09:10 ? 00:00:00 grep bootchartd Remove the wait_boot which used to wait the boot process to finish to make sure only one bootchartd process and meanwhile we don't need the wait_boot logic because we either use "/sbin/bootchartd stop" to stop the bootchartd manually or install package bootchartd-stop-initscript altogether with bootchart2 to stop bootchartd automatically after boot. After patch: # ps -ef | grep bootchart root 101 1 0 03:36 ? 00:00:00 /bin/sh /sbin/bootchartd root 103 101 6 03:36 ? 00:00:04 /lib64/bootchart/bootchart-collector 50 root 596 592 0 03:37 ttyS0 00:00:00 grep bootchart [1] https://github.com/xrmx/bootchart/issues/94 Signed-off-by: Mingli Yu <mingli...@windriver.com> --- ...ake-sure-only-one-bootchartd-process.patch | 68 +++++++++++++++++++ .../bootchart2/bootchart2_0.14.9.bb | 1 + 2 files changed, 69 insertions(+) create mode 100644 meta/recipes-devtools/bootchart2/bootchart2/0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch diff --git a/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch b/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch new file mode 100644 index 0000000000..0d6c20c47c --- /dev/null +++ b/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch @@ -0,0 +1,68 @@ +From 988ca784d4840c87509e770a21d5d22105af8668 Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli...@windriver.com> +Date: Fri, 5 Nov 2021 11:18:07 +0800 +Subject: [PATCH] bootchartd.in: make sure only one bootchartd process + +When boot with "init=/sbin/bootchartd" as below: + # runqemu qemux86 bootparams="init=/sbin/bootchartd" + +There are two bootchartd process after boot [1]. + # ps -ef | grep bootchart +root 101 1 0 03:27 ? 00:00:00 /bin/sh /sbin/bootchartd +root 103 101 8 03:27 ? 00:00:02 /lib64/bootchart/bootchart-collector 50 +root 106 1 0 03:27 ? 00:00:00 /bin/sh /sbin/bootchartd +root 792 106 0 03:27 ? 00:00:00 /lib64/bootchart/bootchart-collector --usleep 1000000 +root 794 725 0 03:27 ttyS0 00:00:00 grep bootchart + + # /sbin/bootchartd stop +[bootchart] bootchart-collector started as pid 596 with 2 args: +[bootchart] '--dump' +[bootchart] '/tmp/bootchart.3lXpVDAq3v' +[bootchart] Extracting profile data from pid 204 +[bootchart] map 0xbed9a000 -> 0xbedbb000 size: 132k from 'bed9a000' 'bedbb000' +[bootchart] read 135168 bytes of 135168 +[bootchart] reading 150 chunks (of 150) ... +[bootchart] wrote 18760 kbB +[bootchart] bootchart-collector pid: 596 unmounted proc / clean exit + +But there still one process exist after the above stop command finish. + # ps -ef | grep bootchartd +root 202 1 0 09:09 ? 00:00:00 /bin/sh /sbin/bootchartd +root 629 516 0 09:10 ? 00:00:00 grep bootchartd + +Remove the wait_boot which used to wait the boot process to finish to +make sure only one bootchartd process and meanwhile we don't need the +wait_boot logic because we either use "/sbin/bootchartd stop" to stop +the bootchartd manually or install package bootchartd-stop-initscript +altogether with bootchart2 to stop bootchartd automatically after boot. + +After patch: + # ps -ef | grep bootchart + root 101 1 0 03:36 ? 00:00:00 /bin/sh /sbin/bootchartd + root 103 101 6 03:36 ? 00:00:04 /lib64/bootchart/bootchart-collector 50 + root 596 592 0 03:37 ttyS0 00:00:00 grep bootchart + +[1] https://github.com/xrmx/bootchart/issues/94 + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu <mingli...@windriver.com> +--- + bootchartd.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/bootchartd.in b/bootchartd.in +index 7979ef9..f0e466d 100755 +--- a/bootchartd.in ++++ b/bootchartd.in +@@ -183,7 +183,6 @@ if [ $$ -eq 1 ]; then + else # running inside the main system + echo "bootchart: no initrd used; starting" + start & +- wait_boot & + # wait a little, until the collector is going, before allowing + # the rest of the system to charge ahead, so we catch it + $USLEEP 250000 +-- +2.17.1 + diff --git a/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb index 59fcd8c78a..87f7631ddc 100644 --- a/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb +++ b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb @@ -94,6 +94,7 @@ SRC_URI = "git://github.com/xrmx/bootchart.git;branch=master;protocol=https \ file://bootchartd_stop.sh \ file://0001-collector-Allocate-space-on-heap-for-chunks.patch \ file://0001-bootchart2-support-usrmerge.patch \ + file://0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch \ " S = "${WORKDIR}/git" -- 2.17.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#159489): https://lists.openembedded.org/g/openembedded-core/message/159489 Mute This Topic: https://lists.openembedded.org/mt/87628040/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-