[MAYBE REGRESSION] kbuild time of kernel compiling

From: Jingbo Xu
Date: Mon Jan 22 2024 - 03:32:50 EST


Hi,

I noticed a regression of kbuild time in v6.7, especially when running
`make` command when all images have already been compiled. In v6.6 it
takes ~3s, while in v6.7 it takes ~18s.

I'm not sure if it's a known issue, or an extra action configurable with
a "CONFIG_XX" option.


Following is the kbuild time in v6.6 versus v7.7, with
arch/x86/configs/x86_64_defconfig used here:


v6.6
```
make clean
make olddefconfig

# first full compiling
$time make bzImage -j128 -s

real 1m9.896s
user 36m56.153s
sys 4m21.748s

# second time with image already compiled
$time make bzImage -j128 -s

real 0m2.776s
user 0m13.823s
sys 0m3.936s
```


v6.7
```
make clean
make olddefconfig

# first full compiling
$time make bzImage -j128 -s

real 1m22.865s
user 37m25.977s
sys 4m22.094s

# second time with image already compiled
$time make bzImage -j128 -s

real 0m18.209s
user 0m29.243s
sys 0m4.330s
```


I tried to bisect, while commit d4e175f2c460 ("Merge tag 'vfs-6.7.super'
of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs") is identified
as the first bad commit, which is obviously wrong. As I'm not familiar
with the structure of the merge commit, the further investigation has
not been made yet.


Besides, it seems that it will take most of the time before "CALL
scripts/checksyscalls.sh" is printed (with "INSTALL libsubcmd_headers"
has already printed).

$time make bzImage -j128
DESCEND objtool
INSTALL libsubcmd_headers

CALL scripts/checksyscalls.sh
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#437)

--
Thanks,
Jingbo