From: Fabiano Rosas <farosas@suse.de>
To: "Daniel P. Berrangé" <berrange@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, "Thomas Huth" <thuth@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>
Subject: Re: [PATCH v3] meson: Pass -j option to sphinx
Date: Tue, 02 May 2023 10:06:09 -0300 [thread overview]
Message-ID: <87v8haj326.fsf@suse.de> (raw)
In-Reply-To: <ZFDLF2nPKdvQ1Mho@redhat.com>
Daniel P. Berrangé <berrange@redhat.com> writes:
> On Sat, Apr 29, 2023 at 02:33:17PM +0200, Paolo Bonzini wrote:
>> On 4/28/23 17:01, Fabiano Rosas wrote:
>> > Also make sure our plugins support parallelism and report it properly
>> > to sphinx. Particularly, implement the merge_domaindata method in
>> > DBusDomain that is used to merge in data from other subprocesses.
>> >
>> > before:
>> > $ time make man html
>> > ...
>> > [1/2] Generating docs/QEMU manual with a custom command
>> > [2/2] Generating docs/QEMU man pages with a custom command
>> >
>> > real 0m43.157s
>> > user 0m42.642s
>> > sys 0m0.576s
>> >
>> > after:
>> > $ time make man html
>> > ...
>> > [1/2] Generating docs/QEMU manual with a custom command
>> > [2/2] Generating docs/QEMU man pages with a custom command
>> >
>> > real 0m25.014s
>> > user 0m51.288s
>> > sys 0m2.085s
>>
>> The 'nproc' fallback will potentially cause twice #CPUs processes to be
>> active, since sphinx will run in parallel with everything else.
>>
>> Is this result with "-j auto", and if so with which computer? If the
>> speedup is only 2x as it seems to be from the "time" above, I'd rather have
>> "-j 2" only so that sphinx doesn't risk killing the machine...
Tested with -j auto and -j16 on my 16 cpu i7-11850H.
>
> Why would it kill the machine ? If there are two sphinx processes
> concurrent, thus overcomitting available CPUs, the scheduler will
> just end up giving them shorter timeslice OS.
One other thing I noticed is that we're not actually running the two
documentation targets in parallel. The man pages have a dependency on
the html pages. I'm not sure if that is legitimate.
sphinxmans += custom_target('QEMU man pages',
build_by_default: build_docs,
output: these_man_pages,
HERE --> input: this_manual,
install: build_docs,
install_dir: install_dirs,
command: [SPHINX_ARGS, '-b', 'man', '-d', private_dir,
input_dir, meson.current_build_dir()])
Removing that line gains us about 10 more seconds. However there are
some annoying differences in the man pages produced such as quotation
marks using a different character. I'm still investigating.
prev parent reply other threads:[~2023-05-02 13:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-28 15:01 [PATCH v3] meson: Pass -j option to sphinx Fabiano Rosas
2023-04-28 15:04 ` Daniel P. Berrangé
2023-04-28 17:14 ` Markus Armbruster
2023-04-28 17:45 ` Fabiano Rosas
2023-05-02 6:32 ` Thomas Huth
2023-04-29 12:33 ` Paolo Bonzini
2023-05-02 8:34 ` Daniel P. Berrangé
2023-05-02 13:06 ` Fabiano Rosas [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87v8haj326.fsf@suse.de \
--to=farosas@suse.de \
--cc=berrange@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.