Date   

Re: recipe won't build, missing pseudo

Richard Purdie
 

On Mon, 2022-12-26 at 18:54 -0800, Mistyron wrote:
Hi,

I'm want to write a recipe to compile phytool but I'm getting the below
error when building it with:
$ bitbake -b phytool_2.0
ERROR: Failed to spawn fakeroot worker to run
/home/yocto/rzg_vlp_v3.0.0/build/../meta-mistysom/recipes-bringup/phytool/phytool_2.0.bb:do_install:
[Errno 2] No such file or directory:
'/home/yocto/rzg_vlp_v3.0.0/build/tmp/sysroots-components/x86_64/pseudo-native/usr/bin/pseudo'

my bb file looks like:

[phytool_2.0.bb]
DESCRIPTION = "Recipe builds phytool utility"
# Needs to be changed to GPLv2
LICENSE = "MIT"
SRC_URI = "git://github.com/MistySOM/phytool.git"
SRCREV = "8882328c08ba2efb13c049812098f1d0cb8adf0c"
LIC_FILES_CHKSUM =
"file://../git/LICENSE;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0"
INHERIT += " pseudo"

python do_display_banner() {
    bb.plain("some message")
}

addtask display_banner before do_build
[/phytool_2.0.bb]

It appears like my INHERIT line does not satsify the requirement.
How can I resolve this?
There is no class called "pseudo" so the inherit line is wrong. Why do
you think you need to inherit such a class?

Pseudo is usually used by tasks as needed by default.

Cheers,

Richard


Re: recipe won't build, missing pseudo

Mistyron <ron.eggler@...>
 

On 12/27/22 08:15, Markus Volk wrote:

Hi Marcus,

Thanks for the reference. I have since found it too and just looped it in with:

MAGE_INSTALL_append = " phytool"

That's a lot easier but I still would like to know about the pseudo error I received. I think it will come back at me at one point or another.

Ron


Am Mo, 26. Dez 2022 um 18:54:01 -0800 schrieb Mistyron <ron.eggler@...>:
Hi, I'm want to write a recipe to compile phytool but I'm getting the below error when building it with: $ bitbake -b phytool_2.0 ERROR: Failed to spawn fakeroot worker to run /home/yocto/rzg_vlp_v3.0.0/build/../meta-mistysom/recipes-bringup/phytool/phytool_2.0.bb:do_install: [Errno 2] No such file or directory: '/home/yocto/rzg_vlp_v3.0.0/build/tmp/sysroots-components/x86_64/pseudo-native/usr/bin/pseudo' my bb file looks like: [phytool_2.0.bb] DESCRIPTION = "Recipe builds phytool utility" # Needs to be changed to GPLv2 LICENSE = "MIT" SRC_URI = "git://github.com/MistySOM/phytool.git" SRCREV = "8882328c08ba2efb13c049812098f1d0cb8adf0c" LIC_FILES_CHKSUM = "file://../git/LICENSE;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0" INHERIT += " pseudo" python do_display_banner() {     bb.plain("some message") } addtask display_banner before do_build [/phytool_2.0.bb] It appears like my INHERIT line does not satsify the requirement. How can I resolve this?
--
RON EGGLER Firmware Engineer (he/him/his) www.mistywest.com
--
RON EGGLER Firmware Engineer (he/him/his) www.mistywest.com


[ANNOUNCEMENT] Milestone 1 for Yocto Project 4.2 (yocto-4.2_M1) Now Available

Lee Chee Yang
 

Hi,

We are pleased to announce the first milestone release for Yocto Project 4.2 (yocto-4.2_M1) is now available for download.

 

Download:

 

http://downloads.yoctoproject.org/releases/yocto/milestones/yocto-4.2_M1

 

bitbake: 6709aedccbb2e7ddbb1b2e7e4893481a7b536436

meta-agl: e2c31ebda224bf6813ff861df9a51e8fc46944e5

meta-arm: 02b430d045b50d5e5cab9a52b786d1134ba17c19

meta-aws: da36bf8bc3f5a1cbb9396e8d28559c422cd96412

meta-intel: de59d48ad2ce88ebe331a8355e742fce7c3b428c

meta-mingw: 4a066511a944ec946efa7a4571029c992cf0ae00

meta-openembedded: 8c58f419c299fe3764482ebe4f366e25533ea23f

meta-virtualization: cb5dfda6f6d862a575f029ee8ded0bc3db6bc766

oecore: 96ff9baa8ead57504f40f362ed3a4aaa776d1b58

poky: 4d19594b8bdacde6d809d3f2a25cff7c5a42295e

 

Full Test Report:

 

http://downloads.yoctoproject.org/releases/yocto/milestones/yocto-4.2_M1/testreport.txt

 

Thank you.

 

Chee Yang

chee.yang.lee@...

Yocto Project Build and Release


Re: bitbake controlling memory use

Ferry Toth
 

Hi,
Op 26-12-2022 om 03:11 schreef Randy MacLeod:
On 2022-12-24 13:58, Ferry Toth via lists.yoctoproject.org wrote:
Op 18-04-2021 om 21:34 schreef Gmane Admin:
Hi,
Op 18-04-2021 om 11:59 schreef Richard Purdie:
On Sun, 2021-04-18 at 00:17 +0200, Gmane Admin wrote:
Hi,
Op 14-04-2021 om 06:59 schreef Richard Purdie:
On Tue, 2021-04-13 at 21:14 -0400, Randy MacLeod wrote:
On 2021-04-11 12:19 p.m., Alexander Kanavin wrote:
make already has -l option for limiting new instances if load average is
too high, so it's only natural to add a RAM limiter too.

     -l [N], --load-average[=N], --max-load[=N]
                                 Don't start multiple jobs unless load is
below N.

In any case, patches welcome :)
During today's Yocto technical call (1),
we talked about approaches to limiting the system load and avoiding
swap and/or OOM events. Here's what (little!) i recall from the
discussion, 9 busy hours later.

In the short run, instead of independently maintaining changes to
configurations to limit parallelism or xz memory usage, etc, we
could develop an optional common include file where such limits
are shared across the community.
I tried PARALLEL_MAKE_nodejs = "-j 1" from local.conf but that didn't work.
It would need to be:

PARALLEL_MAKE_pn-nodejs = "-j 1"

So I watched it run for a while. It compiles with g++ and as at about
0.5GB per thread, which is OK. In the end it does ld taking 4GB and it
tries to do 4 in parallel. And then swapping becomes so heavy the
desktop becomes unresponsive. Like I mentioned before ssh from another
machine allows me to STOP one of them, allowing the remaining to
complete. And then CONT the last one.

I worked around it now, by creating a bbappend for nodejs with only
PARALLEL_MAKE = "-j 2"
If that works, the override above should also work. You do need the "pn-"
prefix to the recipe name though.
And indeed it does, thanks so much for the tip.
This discussion is very old, but I just wanted to share an update. With my image (meta-intel-edison) building nodejs is the dominant time consumer. With "-j 2" the nodejs build takes multiple hours (I have 8 core + HT), all the rest is then long completed. Without "-j 2" building  nodejs_16.14.2 linking in the final stage 5 processes are started, each 4 - 5GB RAM. With my meager 16GB disk thrashing starts and it still would take hours to complete.

While I still believe we need bitbake to SIGSTOP processes that trigger thrashing, for nodejs I found a solution at the recipe level:

The yocto recipe already has:

EXTRA_OEMAKE = "\
    CC.host='${CC}' \
    CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
    CXX.host='${CXX}' \
    CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
    LDFLAGS.host='${LDFLAGS}' \
    AR.host='${AR}' \
    \
    builddir_name=./ \
"

I inserted `    LINK.host='flock /tmp ${CXX}' \` as that seemed most logical, but that didn't help a bit (the 4 calls in my log to flock were never simultaneous). However after changing it to ` LINK='flock /tmp ${CXX}' \` the linker is serialized.

This makes an enormous difference in my Yocto image build time (nodejs was the dominant factor). Now compile stage ~25min + 5min for link.
Terry,
It's nice to hear that you have an approach to make building nodejs feasible for you on your hardware.
I have been wondering if we should be trying to serialize linking across recipes (nodejs, webkitgtk, llvm, and other larger packages)
but I hadn't noticed that nodejs itself was in need of umm, *guidance*. ;-)
Are you aware of the recently added: BB_PRESSURE_MAX_[CPU|IO|MEMORY] variables?
https://docs.yoctoproject.org/bitbake/2.2/bitbake-user-manual/bitbake-user-manual-ref-variables.html#term-BB_PRESSURE_MAX_CPU
That might help you a bit as well.
Nope I hadn't seen that. I immediately tried it, but of course it didn't work.

Reason is, it regulates starting tasks. But the problem with nodejs is (if I don't intervene) the task do_compile takes so long, there are not other tasks running.

Also looking at the documentation: "At this point in time, experiments show that IO pressure tends to be short-lived and regulating just the CPU can help to reduce it."

This is not true. I have just taken some measurements with htop for my case 16 threads + 16GB RAM:
- the do_compile task roughly falls appart into 2 phases, compiling (many files) and linking (1 + 5 + 5 files).

During compiling I measure PSI CPU=4%, IO = 0%, MEM = 0%, memory use 10G, swap 1.5G
During linking PSI CPU=0.1%, IO = 90%, MEM = 66%, memory use 14G, swap 8G

You can easily see CPU pressure is not the issue, all CPU time is spend on swapping (IO pressure).

This is also the reason I can get my system responding again by SIGSTOP on some of the ld processes, once they are stopped (not killed) they are swapped out, and stay out.

Basically this is proof that when I manually schedule processes I do a better job then the kernel.

Zheng and I also have a brand new, unpolished patch, to 'make' to limit builds based on PSI (the *some* line from /proc/pressure/cpu ).
If you're interested, you could give that a try by either applying a patch to the make recipe and having nodejs depend on make-native
or if you just want to try it out on a private system, build make from:
I am, but I already know this will not work, see above. CPU pressure is not the issue.

If you would be limiting IO pressure it might help, although I expect once you get an IO over-pressure it's already too late, the processes have already been started. The only way I know to resolve, is to stop them temporarily.

   https://github.com/ZhengQ2/make/tree/cpu-pressure-to-commit
save your old version of make and install the new one in in /usr/bin
and set:
PARALLEL_MAKE = " -j -z 5"
This will prevent make from starting new tasks when the CPU pressure,
based on our very simple calculation, is > 5%
We've seen that it can speed up the openssl build on a 24 core system from:
89.030 s ±  0.485 s <-- -j 24
81.727 s ±  1.139 s <-- -j -z 11
for native builds of openssl outside of bitbake.
Early times but it's an interesting data point.
Builds of the kernel didn't show any speed-up and were in fact a bit slower:
$ hyperfine --runs 10 --prepare 'make clean; make defconfig' 'make -j 24' --export-json make-j-24--linux-kernel.json
Benchmark 1: make -j 24
  Time (mean ± σ):     181.770 s ±  0.290 s    [User: 3416.715 s, System: 354.282 s]
  Range (min … max):   181.266 s … 182.231 s    10 runs
# Try -j -z 11
 hyperfine --runs 10 --prepare 'make clean; make defconfig' 'make -j -z 11 ' --export-json make-j-z-11--linux-kernel.json
Benchmark 1: make -j -z 11
  Time (mean ± σ):     185.915 s ±  1.988 s    [User: 3447.606 s, System: 343.528 s]
  Range (min … max):   184.046 s … 189.901 s    10 runs
but presumably not needing to specify the number of cores to use, could be a benefit.
PSI also has /proc/pressure/memory but we've found that for bitbake at least,
if you limit CPU usage, you can limit overall memory usage. Package builds and linking
may be a different kettle of fish and your explicit serialization would always be better
at preventing the system from swapping than PSI memory, which only provides a signal
when things have gotten out of hand already.
../Randy


Ferry

Cheers,

Richard









Re: recipe won't build, missing pseudo

Markus Volk
 


Am Mo, 26. Dez 2022 um 18:54:01 -0800 schrieb Mistyron <ron.eggler@...>:

Hi, I'm want to write a recipe to compile phytool but I'm getting the below error when building it with: $ bitbake -b phytool_2.0 ERROR: Failed to spawn fakeroot worker to run /home/yocto/rzg_vlp_v3.0.0/build/../meta-mistysom/recipes-bringup/phytool/phytool_2.0.bb:do_install: [Errno 2] No such file or directory: '/home/yocto/rzg_vlp_v3.0.0/build/tmp/sysroots-components/x86_64/pseudo-native/usr/bin/pseudo' my bb file looks like: [phytool_2.0.bb] DESCRIPTION = "Recipe builds phytool utility" # Needs to be changed to GPLv2 LICENSE = "MIT" SRC_URI = "git://github.com/MistySOM/phytool.git" SRCREV = "8882328c08ba2efb13c049812098f1d0cb8adf0c" LIC_FILES_CHKSUM = "file://../git/LICENSE;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0" INHERIT += " pseudo" python do_display_banner() {     bb.plain("some message") } addtask display_banner before do_build [/phytool_2.0.bb] It appears like my INHERIT line does not satsify the requirement. How can I resolve this?
--
RON EGGLER Firmware Engineer (he/him/his) www.mistywest.com


Re: Run browser immediately after booting up device #yocto

Pavel Zhukov
 

Hi, 

Kiosk mode is what you're looking for. Just google for "Yocto kiosk" and you'll see few solutions like:

-- 
Pavel

On Tue, Dec 27, 2022, at 08:13, jovanbosic95@... wrote:
Hi everyone,

I have a task to add browser to my yocto project and start it immediately after it is booted. Also I have to open specific web page. Any suggestions how to do it? Any advice would be helpful. 

Thanks in advance!






Run browser immediately after booting up device #yocto

jovanbosic95@...
 

Hi everyone,

I have a task to add browser to my yocto project and start it immediately after it is booted. Also I have to open specific web page. Any suggestions how to do it? Any advice would be helpful. 

Thanks in advance!


recipe won't build, missing pseudo

Mistyron <ron.eggler@...>
 

Hi,

I'm want to write a recipe to compile phytool but I'm getting the below error when building it with:
$ bitbake -b phytool_2.0
ERROR: Failed to spawn fakeroot worker to run /home/yocto/rzg_vlp_v3.0.0/build/../meta-mistysom/recipes-bringup/phytool/phytool_2.0.bb:do_install: [Errno 2] No such file or directory: '/home/yocto/rzg_vlp_v3.0.0/build/tmp/sysroots-components/x86_64/pseudo-native/usr/bin/pseudo'

my bb file looks like:

[phytool_2.0.bb]
DESCRIPTION = "Recipe builds phytool utility"
# Needs to be changed to GPLv2
LICENSE = "MIT"
SRC_URI = "git://github.com/MistySOM/phytool.git"
SRCREV = "8882328c08ba2efb13c049812098f1d0cb8adf0c"
LIC_FILES_CHKSUM = "file://../git/LICENSE;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0"
INHERIT += " pseudo"

python do_display_banner() {
    bb.plain("some message")
}

addtask display_banner before do_build
[/phytool_2.0.bb]

It appears like my INHERIT line does not satsify the requirement.
How can I resolve this?

--
RON EGGLER Firmware Engineer (he/him/his) www.mistywest.com


M+ & H bugs with Milestone Movements WW52

Stephen Jolley
 

All,

YP M+ or high bugs which moved to a new milestone in WW52 are listed below:

Priority

Bug ID

Short Description

Changer

Owner

Was

Became

Medium+

5322

Global DNS fallback mechanism not present in poky distro

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

5389

bitbake/lib/bb/fetch2: filename too long

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

5876

Add a test for the kernel -c menuconfig option

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

6428

Improve the ability to isolate changes that have caused a rebuild

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

7600

syslinux: port extX support patches to syslinux community

randy.macleod@...

sakib.sajal@...

4.2 M1

4.2 M3

 

10061

Ctrl+C during BB_HASHCHECK_FUNCTION execution does not interrupt processing nicely

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

10693

Add a testcase for multilib eSDK on the autobuilder

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

12060

It is possible to specify a PACKAGE and a PKG_ rename that conflict

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

12279

enhance manifest not found warning

randy.macleod@...

randy.macleod@...

4.2 M1

4.2 M2

 

12290

cross recipe kernel module dependency generation stopped working

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

12342

lib32-core-image-sato -ctestimage failed due to wrong package names

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

12374

do_rootfs failed when len(TMPDIR) == 410

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

12723

mysql requires unicode and char length filtering

randy.macleod@...

david.reyna@...

4.2 M1

4.2 M2

 

12760

CMake Toolchain File Has Wrong Module Path

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

12963

nativesdk-opkg prefixes all internal paths with $SDKPATH and won't work

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

13004

Automate yocto-check-layer -m option

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

13008

toaster testing

randy.macleod@...

david.reyna@...

4.2 M1

4.2 M3

 

13109

Implement CPE to package to Release mapping

randy.macleod@...

david.reyna@...

4.2 M1

4.2 M3

 

13103

[Bug][QA 2.7 M1 rc1][Toaster] "Recipes" tableá and á"machines" table are not getting populated after clickingáon imported layer as well as after clicking Machines Tab on project page

randy.macleod@...

david.reyna@...

4.2 M1

4.2 M3

 

13181

persist_data sqlite database mixed with forking is irreparably broken

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

13190

RRS cannot handle multiple recipes with same PN

randy.macleod@...

randy.macleod@...

4.2 M1

4.2 M3

 

13279

Make sure users/groups exist for package_write_* tasks

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

13285

YoctoProject Compatibility script improvements needed

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

13288

pseudo should not follow symlinks in /proc

randy.macleod@...

sakib.sajal@...

4.2 M1

4.2 M3

 

13298

python3 ptest results are inconsistent per image

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

13311

xargs: fdleak.c:396: complain_about_leaky_fds: Assertion `no_leaks' failed.

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

13338

SDK  build fails if image contains bash

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

13419

recipes that add users to groups cannot rely on other recipes creating those groups (when population from sstate happens)

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

13425

Add bblock and bbunlock helper tools

randy.macleod@...

newcomer@...

4.2 M1

4.2 M2

 

13520

many valgrind tests fail for arm64

randy.macleod@...

randy.macleod@...

4.2 M1

4.2 M2

 

13508

Meson detects googletest installed on system

randy.macleod@...

newcomer@...

4.2 M1

4.2 M3

 

13550

username/password specified to gitsm:// does not get propagated to submodules

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

13674

master dnf failures on qemumips

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

13766

Using TCLIBC=musl results in SDKs producing incompatible binaries

randy.macleod@...

sakib.sajal@...

4.2 M1

4.2 M3

 

13843

bitbake worker stuck using 100% cpu on aborted build

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

13868

Python cache files get lost in packages

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

13889

python3 Windows distutils stubs regressed in upgrade to 3.8.2

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

13904

do_prepare_recipe_sysroot: postinst-useradd-* does not run in order of dependency and sometimes fails

randy.macleod@...

sakib.sajal@...

4.2 M1

4.2 M3

 

13910

Intermittent host UID contamination highlighted by devtool tests

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

13919

Multi License GPLv3 -lic cannot be installed into the image because it has incompatible license

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

13954

Invalid layerindex data causing backtrace in `bitbake-layers layerindex-fetch`

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14015

URL Arguments in MIRROR/PREMIRROR get encoded

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14020

environment-setup script in multilib eSDK doesn't work for multilib variant

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14066

bitbake core-image-base -c populate_sdk fails when image contains bash, core-utils and package_deb is used

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14098

absolute path in TEMPLATECONF should be rejected or warned, makes ext-sdk uninstallable

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14118

systemd services not enabled when using package feed

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14125

busybox wget ssl is exposed to MitM attack due to CVE-2018-1000500

randy.macleod@...

randy.macleod@...

4.2 M1

4.2 M2

 

14127

cve-check falsely indicates a vulnerabily to be patched

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14126

resolvconf incompatible with busybox flock

randy.macleod@...

newcomer@...

4.2 M1

4.2 M2

 

14136

If u-boot defconfig is incomplete, 'bitbake u-boot -c configure' hangs and eats all memory

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14154

yocto-check-layer fails incorrectly with kernel hash changes

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14155

yocto-check-layer fails with hash changes if license added

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14157

git fetcher: consider using different git commands for repo packing, eliminating "git pack-redundant"

randy.macleod@...

newcomer@...

4.2 M1

4.2 M2

 

14165

AB-INT PTEST: strace ptest intermittent failure in qual_fault-syscall.test

randy.macleod@...

randy.macleod@...

4.0 M3

4.2 M2

 

14196

Add integration to send data to KCIDB

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14218

Recipe rebuilds can contaminate builds

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14236

npmsw does not support github URLs in the npm-shrinkwrap.json file

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14303

Result of build is not stored in testresult.json with resulttool

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14348

Layer dependencies not updated

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14383

archiver.bbclass:do_ar_mirror copies entire contents of ${DL_DIR} to ${WORKDIR} when used with npm.bbclass

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14386

patchelf breaks go -native executables

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14403

Qemu error messages not clear when command line is corrupted.

randy.macleod@...

sakib.sajal@...

4.2 M1

4.2 M3

 

14430

valgrind memcheck/tests/linux/stack_changes failure

randy.macleod@...

randy.macleod@...

4.2 M1

4.2 M2

 

14443

valgrind none/tests/amd64/fb_test_amd64 ptest intermittent failure

randy.macleod@...

randy.macleod@...

4.2 M1

4.2 M2

 

14461

devtool sdk-update do not clean old version files

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14462

devtool sdk-update does not update sstate-cache

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14466

python: Should we add this optimization: -fno-semantic-interposition for 1.3x speed improvment?

randy.macleod@...

randy.macleod@...

4.2 M1

4.2 M2

 

14520

A qemuboot.conf file isn't generated if the rootfs wasn't modified

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14528

remove floppy controller from qemu

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14584

Allow to add reason on build cancellation

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14642

Yocto-check-layer add patch Upstream-Status check

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14693

cmake-native do_configure fails when rebuilding without sstate on NIS hosts

randy.macleod@...

randy.macleod@...

4.2 M1

4.2 M2

 

14689

Need to show activity when talking to hash equivalence servers

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14691

Bitbake does not check for all required perl modules to build oe-core

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14749

Missing test cases for initramfs runtime testing

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14804

busybox and dpkg versions of start-stop-daemon disagree on symlink location

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14814

ncurses version of taskexp.py

randy.macleod@...

david.reyna@...

4.2 M1

4.2 M2

 

14834

Timeout issue with Toaster and bitbake

randy.macleod@...

david.reyna@...

4.2 M1

4.2 M3

 

14860

Cannot build x86-64 Go SDK on aarch64

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14866

testsdk logs missing information

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14876

rust: Improve reproducibility patch

randy.macleod@...

yashinde145@...

4.2 M1

4.2 M2

 

14875

reproducibility failures in rust

randy.macleod@...

sundeep.kokkonda@...

4.2 M1

4.2 M2

 

14890

create-spdx should parse license strings with and without spaces between license terms

randy.macleod@...

sgw@...

4.2 M1

4.2 M3

 

14904

Make rust target identification better in crossbeam

randy.macleod@...

randy.macleod@...

4.2 M1

4.2 M2

 

14905

Error in compiling rustfmt does not cause do_compile to fail

randy.macleod@...

Naveen.Gowda@...

4.2 M1

4.2 M2

 

14930

connman - sysvinit - nfs/dhcp hangs in langdale/master

randy.macleod@...

unassigned@...

4.2 M1

4.2 M2

 

14944

go recipes are not devtool upgradeable

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

 

14945

devtool upgrade multiple architectures, targets

randy.macleod@...

unassigned@...

4.2 M1

4.2 M3

Thanks,

 

Stephen K. Jolley

Yocto Project Program Manager

(    Cell:                (208) 244-4460

* Email:              sjolley.yp.pm@...

 


Enhancements/Bugs closed WW52!

Stephen Jolley
 

All,

The below were the owners of enhancements or bugs closed during the last week!

Who

Count

randy.macleod@...

2

bruce.ashfield@...

1

workjagadeesh@...

1

richard.purdie@...

1

mingli.yu@...

1

Grand Total

6

Thanks,

 

Stephen K. Jolley

Yocto Project Program Manager

(    Cell:                (208) 244-4460

* Email:              sjolley.yp.pm@...

 


Current high bug count owners for Yocto Project 4.2

Stephen Jolley
 

All,

Below is the list as of top 32 bug owners as of the end of WW52 of who have open medium or higher bugs and enhancements against YP 4.2.   There are 84 possible work days left until the final release candidates for YP 4.2 needs to be released.

Who

Count

michael.opdenacker@...

35

ross.burton@...

30

bruce.ashfield@...

25

randy.macleod@...

25

david.reyna@...

23

richard.purdie@...

23

JPEWhacker@...

10

saul.wold@...

9

sakib.sajal@...

8

pavel@...

5

Zheng.Qiu@...

4

tim.orling@...

4

alexandre.belloni@...

4

Naveen.Gowda@...

2

sgw@...

2

jon.mason@...

2

hongxu.jia@...

2

sundeep.kokkonda@...

2

akuster808@...

2

bluelightning@...

2

sundeep.kokkonda@...

2

martin.beeger@...

1

mhalstead@...

1

mathew.prokos@...

1

thomas.perrot@...

1

Anton.Antonov@...

1

Martin.Jansa@...

1

yashinde145@...

1

aehs29@...

1

bst@...

1

rybczynska@...

1

tvgamblin@...

1

Grand Total

232

Thanks,

 

Stephen K. Jolley

Yocto Project Program Manager

(    Cell:                (208) 244-4460

* Email:              sjolley.yp.pm@...

 


Yocto Project Newcomer & Unassigned Bugs - Help Needed

Stephen Jolley
 

All,

 

The triage team is starting to try and collect up and classify bugs which a newcomer to the project would be able to work on in a way which means people can find them. They're being listed on the triage page under the appropriate heading:

https://wiki.yoctoproject.org/wiki/Bug_Triage#Newcomer_Bugs  Also please review: https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded and how to create a bugzilla account at: https://bugzilla.yoctoproject.org/createaccount.cgi

The idea is these bugs should be straight forward for a person to help work on who doesn't have deep experience with the project.  If anyone can help, please take ownership of the bug and send patches!  If anyone needs help/advice there are people on irc who can likely do so, or some of the more experienced contributors will likely be happy to help too.

 

Also, the triage team meets weekly and does its best to handle the bugs reported into the Bugzilla. The number of people attending that meeting has fallen, as have the number of people available to help fix bugs. One of the things we hear users report is they don't know how to help. We (the triage team) are therefore going to start reporting out the currently 418 unassigned or newcomer bugs.

 

We're hoping people may be able to spare some time now and again to help out with these.  Bugs are split into two types, "true bugs" where things don't work as they should and "enhancements" which are features we'd want to add to the system.  There are also roughly four different "priority" classes right now,  “4.2”, “4.3”, "4.99" and "Future", the more pressing/urgent issues being in "4.2" and then “4.3”.

 

Please review this link and if a bug is something you would be able to help with either take ownership of the bug, or send me (sjolley.yp.pm@...) an e-mail with the bug number you would like and I will assign it to you (please make sure you have a Bugzilla account).  The list is at: https://wiki.yoctoproject.org/wiki/Bug_Triage_Archive#Unassigned_or_Newcomer_Bugs

 

Thanks,

 

Stephen K. Jolley

Yocto Project Program Manager

(    Cell:                (208) 244-4460

* Email:              sjolley.yp.pm@...

 


[PATCH yocto-autobuilder-helper] config.json: use -a option for oe-selftest

Alexandre Belloni
 

From: Alexandre Belloni <alexandre.belloni@...>

Signed-off-by: Alexandre Belloni <alexandre.belloni@...>
---
config.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/config.json b/config.json
index 298791b694f6..000d331b8eff 100644
--- a/config.json
+++ b/config.json
@@ -196,7 +196,7 @@
"extravars" : [
"RPM_GPG_SIGN_CHUNK = '1'"
],
- "EXTRACMDS" : ["${SCRIPTSDIR}/checkvnc; DISPLAY=:1 oe-selftest --skip-tests distrodata.Distrodata.test_checkpkg buildoptions.SourceMirroring.test_yocto_source_mirror -T machine -T toolchain-user -T toolchain-system -j 15"],
+ "EXTRACMDS" : ["${SCRIPTSDIR}/checkvnc; DISPLAY=:1 oe-selftest -a --skip-tests distrodata.Distrodata.test_checkpkg buildoptions.SourceMirroring.test_yocto_source_mirror -T machine -T toolchain-user -T toolchain-system -j 15"],
"ADDLAYER" : ["${BUILDDIR}/../meta-selftest"]
}
},
@@ -233,7 +233,7 @@
},
"step2" : {
"shortname" : "OE Selftest",
- "EXTRACMDS" : ["${SCRIPTSDIR}/checkvnc; OEQA_DEBUGGING_SAVED_OUTPUT=${BASE_SHAREDDIR}/pub/repro-fail/ DISPLAY=:1 oe-selftest --skip-tests distrodata.Distrodata.test_checkpkg buildoptions.SourceMirroring.test_yocto_source_mirror reproducible -T machine -T toolchain-user -T toolchain-system -j 15"],
+ "EXTRACMDS" : ["${SCRIPTSDIR}/checkvnc; OEQA_DEBUGGING_SAVED_OUTPUT=${BASE_SHAREDDIR}/pub/repro-fail/ DISPLAY=:1 oe-selftest -a --skip-tests distrodata.Distrodata.test_checkpkg buildoptions.SourceMirroring.test_yocto_source_mirror reproducible -T machine -T toolchain-user -T toolchain-system -j 15"],
"ADDLAYER" : ["${BUILDDIR}/../meta-selftest"]
},
"step3" : {
--
2.38.1


[yocto-autobuilder-helper][langdale][PATCH] config.json: remove meta-agl from check-layer

Alexandre Belloni
 

From: Alexandre Belloni <alexandre.belloni@...>

langdale isn't currently supported on any branch of meta-agl

Signed-off-by: Alexandre Belloni <alexandre.belloni@...>
---
config.json | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/config.json b/config.json
index 27283c9f1610..45560c5cc522 100644
--- a/config.json
+++ b/config.json
@@ -890,33 +890,29 @@
}
},
"check-layer-nightly" : {
- "NEEDREPOS" : ["poky", "meta-agl", "meta-arm", "meta-aws", "meta-intel", "meta-ti", "meta-openembedded", "meta-virtualization"],
+ "NEEDREPOS" : ["poky", "meta-arm", "meta-aws", "meta-intel", "meta-ti", "meta-openembedded", "meta-virtualization"],
"step1" : {
- "shortname" : "Test meta-agl YP Compatibility",
- "EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-agl/meta-agl-core ../meta-agl/meta-netboot ../meta-agl/meta-pipewire --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python --no-auto-dependency"]
- },
- "step2" : {
"shortname" : "Test meta-arm YP Compatibility",
"MACHINE" : "qemuarm64",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-arm/meta-arm ../meta-arm/meta-arm-toolchain ../meta-arm/meta-arm-bsp ../meta-arm/meta-gem5 ../meta-arm/meta-arm-autonomy --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python ../meta-poky ../meta-openembedded/meta-filesystems ../meta-virtualization --no-auto-dependency"]
},
- "step3" : {
+ "step2" : {
"shortname" : "Test meta-aws YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-aws --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python -n --no-auto-dependency"]
},
- "step4" : {
+ "step3" : {
"shortname" : "Test meta-intel YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-intel --no-auto-dependency"]
},
- "step5" : {
+ "step4" : {
"shortname" : "Test meta-ti YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-ti/meta-ti-bsp ../meta-ti/meta-ti-extras --dependency ../meta-arm --no-auto-dependency"]
},
- "step6" : {
+ "step5" : {
"shortname" : "Test meta-oe YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-openembedded --no-auto-dependency"]
},
- "step7" : {
+ "step6" : {
"shortname" : "Test meta-virtualization YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-virtualization --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python ../meta-openembedded/meta-filesystems --no-auto-dependency"]
}
--
2.38.1


Re: [yocto-autobuilder-helper][PATCH] config.json: remove meta-agl from check-layer

Alexandre Belloni
 

I forgot to tag this one for langdale

On 26/12/2022 10:24:19+0100, Alexandre Belloni via lists.yoctoproject.org wrote:
From: Alexandre Belloni <alexandre.belloni@...>

langdale isn't currently supported on any branch of meta-agl

Signed-off-by: Alexandre Belloni <alexandre.belloni@...>
---
config.json | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/config.json b/config.json
index 27283c9f1610..45560c5cc522 100644
--- a/config.json
+++ b/config.json
@@ -890,33 +890,29 @@
}
},
"check-layer-nightly" : {
- "NEEDREPOS" : ["poky", "meta-agl", "meta-arm", "meta-aws", "meta-intel", "meta-ti", "meta-openembedded", "meta-virtualization"],
+ "NEEDREPOS" : ["poky", "meta-arm", "meta-aws", "meta-intel", "meta-ti", "meta-openembedded", "meta-virtualization"],
"step1" : {
- "shortname" : "Test meta-agl YP Compatibility",
- "EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-agl/meta-agl-core ../meta-agl/meta-netboot ../meta-agl/meta-pipewire --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python --no-auto-dependency"]
- },
- "step2" : {
"shortname" : "Test meta-arm YP Compatibility",
"MACHINE" : "qemuarm64",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-arm/meta-arm ../meta-arm/meta-arm-toolchain ../meta-arm/meta-arm-bsp ../meta-arm/meta-gem5 ../meta-arm/meta-arm-autonomy --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python ../meta-poky ../meta-openembedded/meta-filesystems ../meta-virtualization --no-auto-dependency"]
},
- "step3" : {
+ "step2" : {
"shortname" : "Test meta-aws YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-aws --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python -n --no-auto-dependency"]
},
- "step4" : {
+ "step3" : {
"shortname" : "Test meta-intel YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-intel --no-auto-dependency"]
},
- "step5" : {
+ "step4" : {
"shortname" : "Test meta-ti YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-ti/meta-ti-bsp ../meta-ti/meta-ti-extras --dependency ../meta-arm --no-auto-dependency"]
},
- "step6" : {
+ "step5" : {
"shortname" : "Test meta-oe YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-openembedded --no-auto-dependency"]
},
- "step7" : {
+ "step6" : {
"shortname" : "Test meta-virtualization YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-virtualization --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python ../meta-openembedded/meta-filesystems --no-auto-dependency"]
}
--
2.38.1


--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


[yocto-autobuilder-helper][PATCH] config.json: remove meta-agl from check-layer

Alexandre Belloni
 

From: Alexandre Belloni <alexandre.belloni@...>

langdale isn't currently supported on any branch of meta-agl

Signed-off-by: Alexandre Belloni <alexandre.belloni@...>
---
config.json | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/config.json b/config.json
index 27283c9f1610..45560c5cc522 100644
--- a/config.json
+++ b/config.json
@@ -890,33 +890,29 @@
}
},
"check-layer-nightly" : {
- "NEEDREPOS" : ["poky", "meta-agl", "meta-arm", "meta-aws", "meta-intel", "meta-ti", "meta-openembedded", "meta-virtualization"],
+ "NEEDREPOS" : ["poky", "meta-arm", "meta-aws", "meta-intel", "meta-ti", "meta-openembedded", "meta-virtualization"],
"step1" : {
- "shortname" : "Test meta-agl YP Compatibility",
- "EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-agl/meta-agl-core ../meta-agl/meta-netboot ../meta-agl/meta-pipewire --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python --no-auto-dependency"]
- },
- "step2" : {
"shortname" : "Test meta-arm YP Compatibility",
"MACHINE" : "qemuarm64",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-arm/meta-arm ../meta-arm/meta-arm-toolchain ../meta-arm/meta-arm-bsp ../meta-arm/meta-gem5 ../meta-arm/meta-arm-autonomy --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python ../meta-poky ../meta-openembedded/meta-filesystems ../meta-virtualization --no-auto-dependency"]
},
- "step3" : {
+ "step2" : {
"shortname" : "Test meta-aws YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-aws --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python -n --no-auto-dependency"]
},
- "step4" : {
+ "step3" : {
"shortname" : "Test meta-intel YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-intel --no-auto-dependency"]
},
- "step5" : {
+ "step4" : {
"shortname" : "Test meta-ti YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-ti/meta-ti-bsp ../meta-ti/meta-ti-extras --dependency ../meta-arm --no-auto-dependency"]
},
- "step6" : {
+ "step5" : {
"shortname" : "Test meta-oe YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-openembedded --no-auto-dependency"]
},
- "step7" : {
+ "step6" : {
"shortname" : "Test meta-virtualization YP Compatibility",
"EXTRACMDS" : ["yocto-check-layer-wrapper ../meta-virtualization --dependency ../meta-openembedded/meta-oe ../meta-openembedded/meta-networking ../meta-openembedded/meta-python ../meta-openembedded/meta-filesystems --no-auto-dependency"]
}
--
2.38.1


Re: bitbake controlling memory use

Randy MacLeod
 

On 2022-12-24 13:58, Ferry Toth via lists.yoctoproject.org wrote:
Op 18-04-2021 om 21:34 schreef Gmane Admin:
Hi,
Op 18-04-2021 om 11:59 schreef Richard Purdie:
On Sun, 2021-04-18 at 00:17 +0200, Gmane Admin wrote:
Hi,
Op 14-04-2021 om 06:59 schreef Richard Purdie:
On Tue, 2021-04-13 at 21:14 -0400, Randy MacLeod wrote:
On 2021-04-11 12:19 p.m., Alexander Kanavin wrote:
make already has -l option for limiting new instances if load average is
too high, so it's only natural to add a RAM limiter too.

     -l [N], --load-average[=N], --max-load[=N]
                                 Don't start multiple jobs unless load is
below N.

In any case, patches welcome :)
During today's Yocto technical call (1),
we talked about approaches to limiting the system load and avoiding
swap and/or OOM events. Here's what (little!) i recall from the
discussion, 9 busy hours later.

In the short run, instead of independently maintaining changes to
configurations to limit parallelism or xz memory usage, etc, we
could develop an optional common include file where such limits
are shared across the community.
I tried PARALLEL_MAKE_nodejs = "-j 1" from local.conf but that didn't work.
It would need to be:

PARALLEL_MAKE_pn-nodejs = "-j 1"

So I watched it run for a while. It compiles with g++ and as at about
0.5GB per thread, which is OK. In the end it does ld taking 4GB and it
tries to do 4 in parallel. And then swapping becomes so heavy the
desktop becomes unresponsive. Like I mentioned before ssh from another
machine allows me to STOP one of them, allowing the remaining to
complete. And then CONT the last one.

I worked around it now, by creating a bbappend for nodejs with only
PARALLEL_MAKE = "-j 2"
If that works, the override above should also work. You do need the "pn-"
prefix to the recipe name though.
And indeed it does, thanks so much for the tip.
This discussion is very old, but I just wanted to share an update. With my image (meta-intel-edison) building nodejs is the dominant time consumer. With "-j 2" the nodejs build takes multiple hours (I have 8 core + HT), all the rest is then long completed. Without "-j 2" building  nodejs_16.14.2 linking in the final stage 5 processes are started, each 4 - 5GB RAM. With my meager 16GB disk thrashing starts and it still would take hours to complete.

While I still believe we need bitbake to SIGSTOP processes that trigger thrashing, for nodejs I found a solution at the recipe level:

The yocto recipe already has:

EXTRA_OEMAKE = "\
    CC.host='${CC}' \
    CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
    CXX.host='${CXX}' \
    CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
    LDFLAGS.host='${LDFLAGS}' \
    AR.host='${AR}' \
    \
    builddir_name=./ \
"

I inserted `    LINK.host='flock /tmp ${CXX}' \` as that seemed most logical, but that didn't help a bit (the 4 calls in my log to flock were never simultaneous). However after changing it to ` LINK='flock /tmp ${CXX}' \` the linker is serialized.

This makes an enormous difference in my Yocto image build time (nodejs was the dominant factor). Now compile stage ~25min + 5min for link.
Terry,

It's nice to hear that you have an approach to make building nodejs feasible for you on your hardware.

I have been wondering if we should be trying to serialize linking across recipes (nodejs, webkitgtk, llvm, and other larger packages)
but I hadn't noticed that nodejs itself was in need of umm, *guidance*.  ;-)

Are you aware of the recently added: BB_PRESSURE_MAX_[CPU|IO|MEMORY] variables?

https://docs.yoctoproject.org/bitbake/2.2/bitbake-user-manual/bitbake-user-manual-ref-variables.html#term-BB_PRESSURE_MAX_CPU

That might help you a bit as well.

Zheng and I also have a brand new, unpolished patch, to 'make' to limit builds based on PSI (the *some* line from /proc/pressure/cpu ).
If you're interested, you could give that a try by either applying a patch to the make recipe and having nodejs depend on make-native
or if you just want to try it out on a private system, build make from:

   https://github.com/ZhengQ2/make/tree/cpu-pressure-to-commit

save your old version of make and install the new one in in /usr/bin

and set:

PARALLEL_MAKE = " -j -z 5"

This will prevent make from starting new tasks when the CPU pressure,
based on our very simple calculation, is > 5%

We've seen that it can speed up the openssl build on a 24 core system from:

89.030 s ±  0.485 s <-- -j 24

81.727 s ±  1.139 s <-- -j -z 11

for native builds of openssl outside of bitbake.
Early times but it's an interesting data point.

Builds of the kernel didn't show any speed-up and were in fact a bit slower:

$ hyperfine --runs 10 --prepare 'make clean; make defconfig' 'make -j 24' --export-json make-j-24--linux-kernel.json
Benchmark 1: make -j 24
  Time (mean ± σ):     181.770 s ±  0.290 s    [User: 3416.715 s, System: 354.282 s]
  Range (min … max):   181.266 s … 182.231 s    10 runs


# Try -j -z 11

 hyperfine --runs 10 --prepare 'make clean; make defconfig' 'make -j -z 11 ' --export-json make-j-z-11--linux-kernel.json
Benchmark 1: make -j -z 11
  Time (mean ± σ):     185.915 s ±  1.988 s    [User: 3447.606 s, System: 343.528 s]
  Range (min … max):   184.046 s … 189.901 s    10 runs

but presumably not needing to specify the number of cores to use, could be a benefit.

PSI also has /proc/pressure/memory but we've found that for bitbake at least,
if you limit CPU usage, you can limit overall memory usage. Package builds and linking
may be a different kettle of fish and your explicit serialization would always be better
at preventing the system from swapping than PSI memory, which only provides a signal
when things have gotten out of hand already.

../Randy



Ferry

Cheers,

Richard







--
# Randy MacLeod
# Wind River Linux


Re: lsusb

Mistyron <ron.eggler@...>
 

On 2022-12-24 08:38, Markus Volk wrote:
Am Sa, 24. Dez 2022 um 08:34:49 -0800 schrieb Mistyron <ron.eggler@...>:
$ grep usb path/to/package.manifest   libusb-1.0-0   usbutils   usbutils-python
lsusb is part of usbutils, so it is not explicitly listed, but should be included in your image
Oh, I think the cleanall didn't wipe the cache sufficiently, after I deleted contents in sstate-cache/ I get the following:
$ tar -tvf path/to/myimage-20221224185313.rootfs.tar.gz  | grep lsusb
lrwxrwxrwx 0/0               0 2018-03-09 04:34 ./usr/bin/lsusb -> /usr/bin/lsusb.usbutils
-rwxr-xr-x 0/0           14266 2018-03-09 04:34 ./usr/bin/lsusb.py
-rwxr-xr-x 0/0          247976 2018-03-09 04:34 ./usr/bin/lsusb.usbutils
-rw-r--r-- 0/0              43 2018-03-09 04:34 ./usr/lib/opkg/alternatives/lsusb

I would expect "$ lsusb" to work now when I copy this to my board (cannot est right now)

the package.manifest however still only lists:

libusb-1.0-0
usbutils
usbutils-python


Re: bitbake controlling memory use

Ferry Toth
 

Op 18-04-2021 om 21:34 schreef Gmane Admin:
Hi,
Op 18-04-2021 om 11:59 schreef Richard Purdie:
On Sun, 2021-04-18 at 00:17 +0200, Gmane Admin wrote:
Hi,
Op 14-04-2021 om 06:59 schreef Richard Purdie:
On Tue, 2021-04-13 at 21:14 -0400, Randy MacLeod wrote:
On 2021-04-11 12:19 p.m., Alexander Kanavin wrote:
make already has -l option for limiting new instances if load average is
too high, so it's only natural to add a RAM limiter too.

     -l [N], --load-average[=N], --max-load[=N]
                                 Don't start multiple jobs unless load is
below N.

In any case, patches welcome :)
During today's Yocto technical call (1),
we talked about approaches to limiting the system load and avoiding
swap and/or OOM events. Here's what (little!) i recall from the
discussion, 9 busy hours later.

In the short run, instead of independently maintaining changes to
configurations to limit parallelism or xz memory usage, etc, we
could develop an optional common include file where such limits
are shared across the community.
I tried PARALLEL_MAKE_nodejs = "-j 1" from local.conf but that didn't work.
It would need to be:

PARALLEL_MAKE_pn-nodejs = "-j 1"

So I watched it run for a while. It compiles with g++ and as at about
0.5GB per thread, which is OK. In the end it does ld taking 4GB and it
tries to do 4 in parallel. And then swapping becomes so heavy the
desktop becomes unresponsive. Like I mentioned before ssh from another
machine allows me to STOP one of them, allowing the remaining to
complete. And then CONT the last one.

I worked around it now, by creating a bbappend for nodejs with only
PARALLEL_MAKE = "-j 2"
If that works, the override above should also work. You do need the "pn-"
prefix to the recipe name though.
And indeed it does, thanks so much for the tip.
This discussion is very old, but I just wanted to share an update. With my image (meta-intel-edison) building nodejs is the dominant time consumer. With "-j 2" the nodejs build takes multiple hours (I have 8 core + HT), all the rest is then long completed. Without "-j 2" building nodejs_16.14.2 linking in the final stage 5 processes are started, each 4 - 5GB RAM. With my meager 16GB disk thrashing starts and it still would take hours to complete.

While I still believe we need bitbake to SIGSTOP processes that trigger thrashing, for nodejs I found a solution at the recipe level:

The yocto recipe already has:

EXTRA_OEMAKE = "\
CC.host='${CC}' \
CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
CXX.host='${CXX}' \
CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
LDFLAGS.host='${LDFLAGS}' \
AR.host='${AR}' \
\
builddir_name=./ \
"

I inserted ` LINK.host='flock /tmp ${CXX}' \` as that seemed most logical, but that didn't help a bit (the 4 calls in my log to flock were never simultaneous). However after changing it to ` LINK='flock /tmp ${CXX}' \` the linker is serialized.

This makes an enormous difference in my Yocto image build time (nodejs was the dominant factor). Now compile stage ~25min + 5min for link.

Ferry

Cheers,

Richard


Re: lsusb

Markus Volk
 

Am Sa, 24. Dez 2022 um 08:34:49 -0800 schrieb Mistyron <ron.eggler@...>:
$ grep usb path/to/package.manifest   libusb-1.0-0   usbutils   usbutils-python

lsusb is part of usbutils, so it is not explicitly listed, but should be included in your image