summary refs log tree commit diff stats
path: root/results/classifier/deepseek-r1:14b/output/other/1898
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-07-03 19:39:53 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-07-03 19:39:53 +0200
commitdee4dcba78baf712cab403d47d9db319ab7f95d6 (patch)
tree418478faf06786701a56268672f73d6b0b4eb239 /results/classifier/deepseek-r1:14b/output/other/1898
parent4d9e26c0333abd39bdbd039dcdb30ed429c475ba (diff)
downloadqemu-analysis-dee4dcba78baf712cab403d47d9db319ab7f95d6.tar.gz
qemu-analysis-dee4dcba78baf712cab403d47d9db319ab7f95d6.zip
restructure results
Diffstat (limited to 'results/classifier/deepseek-r1:14b/output/other/1898')
-rw-r--r--results/classifier/deepseek-r1:14b/output/other/189833
1 files changed, 33 insertions, 0 deletions
diff --git a/results/classifier/deepseek-r1:14b/output/other/1898 b/results/classifier/deepseek-r1:14b/output/other/1898
new file mode 100644
index 000000000..d69fc7029
--- /dev/null
+++ b/results/classifier/deepseek-r1:14b/output/other/1898
@@ -0,0 +1,33 @@
+
+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