diff options
author | Mingli Yu <mingli.yu@windriver.com> | 2021-12-13 13:45:28 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-12-14 22:46:38 +0000 |
commit | d9702b1bcc57c9069ec33713d1fb541d88f30936 (patch) | |
tree | bbd516ad98a57180330d88d4265b9361cc854b81 | |
parent | 0094cb207854fbfb9e06a424d0c3d487b669b9dc (diff) | |
download | poky-d9702b1bcc57c9069ec33713d1fb541d88f30936.tar.gz |
bootchart2: remove wait_boot logic
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
(From OE-Core rev: cc34e3bdedc045baf97ebc2258295d9433cb332e)
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-devtools/bootchart2/bootchart2/0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch | 68 | ||||
-rw-r--r-- | meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb | 1 |
2 files changed, 69 insertions, 0 deletions
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..3cb8a3c2a2 --- /dev/null +++ b/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch | |||
@@ -0,0 +1,68 @@ | |||
1 | From 988ca784d4840c87509e770a21d5d22105af8668 Mon Sep 17 00:00:00 2001 | ||
2 | From: Mingli Yu <mingli.yu@windriver.com> | ||
3 | Date: Fri, 5 Nov 2021 11:18:07 +0800 | ||
4 | Subject: [PATCH] bootchartd.in: make sure only one bootchartd process | ||
5 | |||
6 | When boot with "init=/sbin/bootchartd" as below: | ||
7 | # runqemu qemux86 bootparams="init=/sbin/bootchartd" | ||
8 | |||
9 | There are two bootchartd process after boot [1]. | ||
10 | # ps -ef | grep bootchart | ||
11 | root 101 1 0 03:27 ? 00:00:00 /bin/sh /sbin/bootchartd | ||
12 | root 103 101 8 03:27 ? 00:00:02 /lib64/bootchart/bootchart-collector 50 | ||
13 | root 106 1 0 03:27 ? 00:00:00 /bin/sh /sbin/bootchartd | ||
14 | root 792 106 0 03:27 ? 00:00:00 /lib64/bootchart/bootchart-collector --usleep 1000000 | ||
15 | root 794 725 0 03:27 ttyS0 00:00:00 grep bootchart | ||
16 | |||
17 | # /sbin/bootchartd stop | ||
18 | [bootchart] bootchart-collector started as pid 596 with 2 args: | ||
19 | [bootchart] '--dump' | ||
20 | [bootchart] '/tmp/bootchart.3lXpVDAq3v' | ||
21 | [bootchart] Extracting profile data from pid 204 | ||
22 | [bootchart] map 0xbed9a000 -> 0xbedbb000 size: 132k from 'bed9a000' 'bedbb000' | ||
23 | [bootchart] read 135168 bytes of 135168 | ||
24 | [bootchart] reading 150 chunks (of 150) ... | ||
25 | [bootchart] wrote 18760 kbB | ||
26 | [bootchart] bootchart-collector pid: 596 unmounted proc / clean exit | ||
27 | |||
28 | But there still one process exist after the above stop command finish. | ||
29 | # ps -ef | grep bootchartd | ||
30 | root 202 1 0 09:09 ? 00:00:00 /bin/sh /sbin/bootchartd | ||
31 | root 629 516 0 09:10 ? 00:00:00 grep bootchartd | ||
32 | |||
33 | Remove the wait_boot which used to wait the boot process to finish to | ||
34 | make sure only one bootchartd process and meanwhile we don't need the | ||
35 | wait_boot logic because we either use "/sbin/bootchartd stop" to stop | ||
36 | the bootchartd manually or install package bootchartd-stop-initscript | ||
37 | altogether with bootchart2 to stop bootchartd automatically after boot. | ||
38 | |||
39 | After patch: | ||
40 | # ps -ef | grep bootchart | ||
41 | root 101 1 0 03:36 ? 00:00:00 /bin/sh /sbin/bootchartd | ||
42 | root 103 101 6 03:36 ? 00:00:04 /lib64/bootchart/bootchart-collector 50 | ||
43 | root 596 592 0 03:37 ttyS0 00:00:00 grep bootchart | ||
44 | |||
45 | [1] https://github.com/xrmx/bootchart/issues/94 | ||
46 | |||
47 | Upstream-Status: Submitted [https://github.com/xrmx/bootchart/pull/95] | ||
48 | |||
49 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
50 | --- | ||
51 | bootchartd.in | 1 - | ||
52 | 1 file changed, 1 deletion(-) | ||
53 | |||
54 | diff --git a/bootchartd.in b/bootchartd.in | ||
55 | index 7979ef9..f0e466d 100755 | ||
56 | --- a/bootchartd.in | ||
57 | +++ b/bootchartd.in | ||
58 | @@ -183,7 +183,6 @@ if [ $$ -eq 1 ]; then | ||
59 | else # running inside the main system | ||
60 | echo "bootchart: no initrd used; starting" | ||
61 | start & | ||
62 | - wait_boot & | ||
63 | # wait a little, until the collector is going, before allowing | ||
64 | # the rest of the system to charge ahead, so we catch it | ||
65 | $USLEEP 250000 | ||
66 | -- | ||
67 | 2.17.1 | ||
68 | |||
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 \ | |||
94 | file://bootchartd_stop.sh \ | 94 | file://bootchartd_stop.sh \ |
95 | file://0001-collector-Allocate-space-on-heap-for-chunks.patch \ | 95 | file://0001-collector-Allocate-space-on-heap-for-chunks.patch \ |
96 | file://0001-bootchart2-support-usrmerge.patch \ | 96 | file://0001-bootchart2-support-usrmerge.patch \ |
97 | file://0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch \ | ||
97 | " | 98 | " |
98 | 99 | ||
99 | S = "${WORKDIR}/git" | 100 | S = "${WORKDIR}/git" |