Thread (2 messages) 2 messages, 2 authors, 2025-07-17

[Performance Regression since v6.15] empty docs build with O= option

flat view

From: Akira Yokosawa <akiyks@gmail.com>
Date: 2025-07-14 10:42:52

Hi all,

Here is a follow-up to my message at:
https://lore.kernel.org/d12fb63e-b346-4094-b9d6-aa6823aea541@gmail.com/ (local)

Quoting relevant parts for your convenience:

Akira wrote:
As a matter of fact, I'm seeing weird performance regression of empty
documentation builds when the O=<somedir> option is used.

It appeared in v6.15, which has your conversion of get_abi.pl into
get_abi.py.  Will send a report once the time-consuming bisection
completes.
Answer to Mauro's question at:
https://lore.kernel.org/20250711130446.1b761538@foz.lan/ (local)

Mauro wrote:
Did you try with docs-next instead? I remember Jon caught one
issue causing the doctree cache to expire. Can't remember if this
was on 6.15 or at docs-next, but the fixes should be applied there.
Jon's complaint at https://lore.kernel.org/87frfsdfgc.fsf@trenco.lwn.net/ (local)
was against Mauro's v2 series.

Jon has applied the v3 series with the issue fixed at:
https://lore.kernel.org/cover.1750571906.git.mchehab+huawei@kernel.org/ (local)

, so the issue has never been in docs-next.

I'm not a python person and bisection is all I could do.

TL;DR

2nd run of "make O=$HOME/output htmldocs" takes much longer since kernel
release v6.15.

2nd run is an empty build and should finish in a matter of 10 seconds.

"make htmldocs" without the O= option doesn't show this symptom.

Here is a summary table.

Note:
    Numbers shown as (x) [y] mean 2nd "make O=$HOME/output htmldocs" run
    takes x seconds, while 2nd "make htmldocs" run takes y seconds
    (rounded up).

       ----------------------------------------
Sphinx      8.2.3 venv       8.1.3     7.2.6 
       ------------------- --------- ----------
Distro    f42      noble      f42      noble 
       --------- --------- --------- ----------
Good   (13) [13] (16) [16] ( 6) [ 6] (  9) [ 9] v6.14
Bad            ---         (72) [ 6] (349) [11] v6.15
Bad            ---         (72) [ 6] (365) [11] v6.16-rc1 + [1]
Bad            ---         (72) [ 7] (342) [10] docs-next (2025.07.11) + [1]
Bad    (77) [14] (82) [15] (73) [ 8] (347) [11] docs-next (2025.07.11) + [1,2,3]
       --------- --------- --------- ----------

[1]: cherry-pick 553ab30a1810 ("Documentation: nouveau: Update GSP message
     queue kernel-doc reference"), to suppress noise of error handling within
     Sphinx.
[2]: Mauro's ynl series v9 at https://lore.kernel.org/cover.1752076293.git.mchehab+huawei@kernel.org/ (local)
     (14/13 applied)
[3]: Jon's kdoc series v2 at https://lore.kernel.org/20250710233142.246524-1-corbet@lwn.net/ (local)
     (12/12 as is)

f42: python 3.13.5, noble: 3.12.3

* Bisection result

Sphinx 8.2.3 (venv) on top of ubuntu:noble (python 3.12.3):

Last good commit:
(16) 6b48bea16848 ("scripts/get_abi.py: add support for symbol search")

First bad commit:
(48) 9d7ec8867960 ("docs: use get_abi.py for ABI generation")

Merged into Jon's docs-mw branch at:
(82) 1ce8294cfefb ("Merge branch 'mauro' into docs-mw")

Pre merge commits of 1ce8294cfefb:
(15) 2b087edf588c ("docs/zh_CN: Add secrets index Chinese translation")
(82) 1c7e66bc5d20 ("scripts/get_abi.pl: drop now obsoleted script")

Again, The numbers enclosed in () indicate the elapsed times (in seconds,
rounded up) of 2nd "make O=$HOME/output htmldocs" runs.

Sphinx 8.2.3 takes longer than 8.1.3 for empty builds, but it is likely
an independent issue on Sphinx side.

Mauro, I'd like you to have a look into this regression.

        Thanks, Akira



Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help