diff mbox series

[kirkstone] stress-ng: avoid calling sync during do_compile

Message ID 20240317120138.180013-1-martin.jansa@gmail.com
State Accepted
Delegated to: Steve Sakoman
Headers show
Series [kirkstone] stress-ng: avoid calling sync during do_compile | expand

Commit Message

Martin Jansa March 17, 2024, 12:01 p.m. UTC
calling 'sync' from do_compile in the middle of big OE world
build harms the build time.

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
---
 .../0001-Makefile-avoid-calling-sync.patch    | 35 +++++++++++++++++++
 .../stress-ng/stress-ng_0.13.12.bb            |  1 +
 2 files changed, 36 insertions(+)
 create mode 100644 meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch

Comments

Randy MacLeod March 17, 2024, 2:37 p.m. UTC | #1
On Sun, Mar 17, 2024, 08:01 Martin Jansa <martin.jansa@gmail.com> wrote:

> calling 'sync' from do_compile in the middle of big OE world
> build harms the build time.
>

No objection from me but do you have a any data on how much an innocuous
call to sync slows down a build?

Randy


> Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> ---
>  .../0001-Makefile-avoid-calling-sync.patch    | 35 +++++++++++++++++++
>  .../stress-ng/stress-ng_0.13.12.bb            |  1 +
>  2 files changed, 36 insertions(+)
>  create mode 100644
> meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch
>
> diff --git
> a/meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch
> b/meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch
> new file mode 100644
> index 0000000000..fec8c524eb
> --- /dev/null
> +++
> b/meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch
> @@ -0,0 +1,35 @@
> +From 1d1801902a4944c6f5fa521c19b32fbac7342a0c Mon Sep 17 00:00:00 2001
> +From: Colin Ian King <colin.i.king@gmail.com>
> +Date: Sat, 6 Aug 2022 13:05:59 +0000
> +Subject: [PATCH] Makefile: avoid calling sync
> +
> +Original commit message:
> +Makefile: use ld-gold if it is available
> +
> +Speed up linking by using ld-gold if is available. Add build
> +time detection to see if compiler allows it
> +
> +MJ: backported only the "sync" removal from Makefile as calling
> +    it from do_compile in the middle of big OE world build harms
> +    the build time.
> +
> +Upstream-Status: Backport [V0.14.04
> c10e5c3f9f5560a085279f4c4b399c2f34cb897d]
> +
> +Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> +Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> +---
> + Makefile | 1 -
> + 1 file changed, 1 deletion(-)
> +
> +diff --git a/Makefile b/Makefile
> +index f8f71c54b..23db4c612 100644
> +--- a/Makefile
> ++++ b/Makefile
> +@@ -425,7 +425,6 @@ OBJS += $(CONFIG_OBJS)
> + stress-ng: $(OBJS)
> +       $(Q)echo "LD $@"
> +       $(V)$(CC) $(CPPFLAGS) $(CFLAGS) $(OBJS) -lm $(LDFLAGS) -o $@
> +-      $(V)sync
> +
> + config.h:
> +       +$(MAKE) -f Makefile.config STATIC=$(STATIC) -j
> diff --git a/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
> b/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
> index 807ecd3466..72dafddaf8 100644
> --- a/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
> +++ b/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
> @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM =
> "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
>
>  SRC_URI = "git://
> github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master \
>
> file://0001-stress-cpu-disable-float128-math-on-powerpc64-to-avo.patch \
> +           file://0001-Makefile-avoid-calling-sync.patch \
>            "
>  SRCREV = "f59bcb2fe1e25042e77d5e4942f72bfa026fa305"
>  S = "${WORKDIR}/git"
> --
> 2.44.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#197260):
> https://lists.openembedded.org/g/openembedded-core/message/197260
> Mute This Topic: https://lists.openembedded.org/mt/104982006/953399
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> rwmacleod@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Martin Jansa March 17, 2024, 3:29 p.m. UTC | #2
No, I've noticed this when stress-ng and lib32-stress-ng were running
do_compile at the same time and for some reason both sync calls got
stuck, I've killed it when it was running both do_compile tasks for 13
hours (and there was chromium and lib32-chromium do_compile running
for 15+ hours as well (not sure if it was related to this sync or
something else).

On Sun, Mar 17, 2024 at 3:37 PM Randy MacLeod <rwmacleod@gmail.com> wrote:
>
>
>
> On Sun, Mar 17, 2024, 08:01 Martin Jansa <martin.jansa@gmail.com> wrote:
>>
>> calling 'sync' from do_compile in the middle of big OE world
>> build harms the build time.
>
>
> No objection from me but do you have a any data on how much an innocuous call to sync slows down a build?
>
> Randy
>
>>
>> Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
>> ---
>>  .../0001-Makefile-avoid-calling-sync.patch    | 35 +++++++++++++++++++
>>  .../stress-ng/stress-ng_0.13.12.bb            |  1 +
>>  2 files changed, 36 insertions(+)
>>  create mode 100644 meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch
>>
>> diff --git a/meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch b/meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch
>> new file mode 100644
>> index 0000000000..fec8c524eb
>> --- /dev/null
>> +++ b/meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch
>> @@ -0,0 +1,35 @@
>> +From 1d1801902a4944c6f5fa521c19b32fbac7342a0c Mon Sep 17 00:00:00 2001
>> +From: Colin Ian King <colin.i.king@gmail.com>
>> +Date: Sat, 6 Aug 2022 13:05:59 +0000
>> +Subject: [PATCH] Makefile: avoid calling sync
>> +
>> +Original commit message:
>> +Makefile: use ld-gold if it is available
>> +
>> +Speed up linking by using ld-gold if is available. Add build
>> +time detection to see if compiler allows it
>> +
>> +MJ: backported only the "sync" removal from Makefile as calling
>> +    it from do_compile in the middle of big OE world build harms
>> +    the build time.
>> +
>> +Upstream-Status: Backport [V0.14.04 c10e5c3f9f5560a085279f4c4b399c2f34cb897d]
>> +
>> +Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
>> +Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
>> +---
>> + Makefile | 1 -
>> + 1 file changed, 1 deletion(-)
>> +
>> +diff --git a/Makefile b/Makefile
>> +index f8f71c54b..23db4c612 100644
>> +--- a/Makefile
>> ++++ b/Makefile
>> +@@ -425,7 +425,6 @@ OBJS += $(CONFIG_OBJS)
>> + stress-ng: $(OBJS)
>> +       $(Q)echo "LD $@"
>> +       $(V)$(CC) $(CPPFLAGS) $(CFLAGS) $(OBJS) -lm $(LDFLAGS) -o $@
>> +-      $(V)sync
>> +
>> + config.h:
>> +       +$(MAKE) -f Makefile.config STATIC=$(STATIC) -j
>> diff --git a/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb b/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
>> index 807ecd3466..72dafddaf8 100644
>> --- a/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
>> +++ b/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
>> @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
>>
>>  SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master \
>>             file://0001-stress-cpu-disable-float128-math-on-powerpc64-to-avo.patch \
>> +           file://0001-Makefile-avoid-calling-sync.patch \
>>            "
>>  SRCREV = "f59bcb2fe1e25042e77d5e4942f72bfa026fa305"
>>  S = "${WORKDIR}/git"
>> --
>> 2.44.0
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#197260): https://lists.openembedded.org/g/openembedded-core/message/197260
>> Mute This Topic: https://lists.openembedded.org/mt/104982006/953399
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [rwmacleod@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
diff mbox series

Patch

diff --git a/meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch b/meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch
new file mode 100644
index 0000000000..fec8c524eb
--- /dev/null
+++ b/meta/recipes-extended/stress-ng/stress-ng-0.13.12/0001-Makefile-avoid-calling-sync.patch
@@ -0,0 +1,35 @@ 
+From 1d1801902a4944c6f5fa521c19b32fbac7342a0c Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.i.king@gmail.com>
+Date: Sat, 6 Aug 2022 13:05:59 +0000
+Subject: [PATCH] Makefile: avoid calling sync
+
+Original commit message:
+Makefile: use ld-gold if it is available
+
+Speed up linking by using ld-gold if is available. Add build
+time detection to see if compiler allows it
+
+MJ: backported only the "sync" removal from Makefile as calling
+    it from do_compile in the middle of big OE world build harms
+    the build time.
+
+Upstream-Status: Backport [V0.14.04 c10e5c3f9f5560a085279f4c4b399c2f34cb897d]
+
+Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+ Makefile | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index f8f71c54b..23db4c612 100644
+--- a/Makefile
++++ b/Makefile
+@@ -425,7 +425,6 @@ OBJS += $(CONFIG_OBJS)
+ stress-ng: $(OBJS)
+ 	$(Q)echo "LD $@"
+ 	$(V)$(CC) $(CPPFLAGS) $(CFLAGS) $(OBJS) -lm $(LDFLAGS) -o $@
+-	$(V)sync
+ 
+ config.h:
+ 	+$(MAKE) -f Makefile.config STATIC=$(STATIC) -j
diff --git a/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb b/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
index 807ecd3466..72dafddaf8 100644
--- a/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
+++ b/meta/recipes-extended/stress-ng/stress-ng_0.13.12.bb
@@ -7,6 +7,7 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master \
            file://0001-stress-cpu-disable-float128-math-on-powerpc64-to-avo.patch \
+           file://0001-Makefile-avoid-calling-sync.patch \
           "
 SRCREV = "f59bcb2fe1e25042e77d5e4942f72bfa026fa305"
 S = "${WORKDIR}/git"