diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-03 19:39:53 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-03 19:39:53 +0200 |
| commit | dee4dcba78baf712cab403d47d9db319ab7f95d6 (patch) | |
| tree | 418478faf06786701a56268672f73d6b0b4eb239 /results/classifier/118/device/1898 | |
| parent | 4d9e26c0333abd39bdbd039dcdb30ed429c475ba (diff) | |
| download | emulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.tar.gz emulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.zip | |
restructure results
Diffstat (limited to 'results/classifier/118/device/1898')
| -rw-r--r-- | results/classifier/118/device/1898 | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/results/classifier/118/device/1898 b/results/classifier/118/device/1898 deleted file mode 100644 index 24c0c262..00000000 --- a/results/classifier/118/device/1898 +++ /dev/null @@ -1,62 +0,0 @@ -device: 0.845 -graphic: 0.773 -performance: 0.701 -permissions: 0.701 -vnc: 0.674 -ppc: 0.641 -architecture: 0.619 -files: 0.618 -risc-v: 0.590 -kernel: 0.560 -PID: 0.533 -VMM: 0.485 -socket: 0.465 -network: 0.448 -boot: 0.437 -debug: 0.431 -user-level: 0.409 -register: 0.394 -TCG: 0.361 -peripherals: 0.348 -semantic: 0.334 -arm: 0.285 -mistranslation: 0.256 -assembly: 0.199 -x86: 0.099 -i386: 0.099 -hypervisor: 0.098 -virtual: 0.095 -KVM: 0.057 - -Ninja makeserver support -Description of problem: -Building `qemu` using a patched version of `ninja`[0] to utilize `make`'s jobserver feature doesn't work when building `qemu`. Usually, when using a jobserver to control the number of jobs being built in parallel across multiple different builds (i.e. when building with `open-embedded` or `buildroot`), the `-j$(nproc)` argument is left out. In this case, the `Qemu` `Makefile` interprets the absent `-j` argument as a wish for a single process only, and adds a `-j1` argument to the `ninja` call. -Steps to reproduce: -1. Built/install the patched `ninja` from [0]: `export PATH=<path/to/ninja>:$PATH` -2. Start the attached [jobserver.py](/uploads/8215e8a470c97cd456d2d14e2c71c6a5/jobserver.py) script: `python jobserver.py /tmp/jobserver 4` -3. Configure `qemu`: `mkdir build; ../configure` -4. Build `qemu`: `MAKEFLAGS="--jobserver-auth=fifo:/tmp/jobserver" make` -5. Observe that only a single CPU/core is being used. - -Now, to avoid passing `-j1` to `ninja`, remove filtering of `-j` arguments from the `Makefile`: - -```patch -diff --git a/Makefile b/Makefile -index bfc4b2c8e9..d66141787e 100644 ---- a/Makefile -+++ b/Makefile -@@ -142,7 +142,6 @@ MAKE.k = $(findstring k,$(firstword $(filter-out --%,$(MAKEFLAGS)))) - MAKE.q = $(findstring q,$(firstword $(filter-out --%,$(MAKEFLAGS)))) - MAKE.nq = $(if $(word 2, $(MAKE.n) $(MAKE.q)),nq) - NINJAFLAGS = $(if $V,-v) $(if $(MAKE.n), -n) $(if $(MAKE.k), -k0) \ -- $(filter-out -j, $(lastword -j1 $(filter -l% -j%, $(MAKEFLAGS)))) \ - -d keepdepfile - ninja-cmd-goals = $(or $(MAKECMDGOALS), all) - ninja-cmd-goals += $(foreach g, $(MAKECMDGOALS), $(.ninja-goals.$g)) -``` - -Run the build again, and see four jobs being run in parallel: - -`make clean; MAKEFLAGS="--jobserver-auth=fifo:/tmp/jobserver" make` -Additional information: -[0] https://github.com/stefanb2/ninja/tree/topic-issue-1139-part-3-jobserver-fifo |
