Re: [GIT PULL] Driver core patches for 5.2-rc1

From: Linus Torvalds
Date: Thu May 09 2019 - 16:49:34 EST


[ Ok, this may look irrelevant to people, but I actually notice this
because I do quick rebuilds *all* the time, so the 30s vs 41s
difference is actually something I reacted to and then tried to figure
out... ]

On Tue, May 7, 2019 at 10:59 AM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> Joel Fernandes (Google) (2):
> Provide in-kernel headers to make extending kernel easier

Joel and Masahiro,
this commit does annoying things. It's a small thing, but it ends up
grating on my kernel rebuild times, so I hope somebody can take a look
at it..

Try building a kernel with no changes, and it shouldn't re-link.

HOWEVER.

If you re-make the config in between, the kernel/kheaders_data.tar.xz
is re-generated too. I think it checks timestamps despite having that
"CHK" phase that should verify just contents.

I think the kernel/config_data.gz rules do the same thing, judging by
the output.

I use "make allmodconfig" to re-generate the same kernel config, which
triggers this. The difference between "nothing changed" and "rerun
'make allmodconfig' and nothing _still_ should have changed" is quite
stark:

- nothing changed: rebuild in less than 30s

[torvalds@i7 linux]$ time make -j32
DESCEND objtool
CALL scripts/atomic/check-atomics.sh
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CHK kernel/kheaders_data.tar.xz
Building modules, stage 2.
Kernel: arch/x86/boot/bzImage is ready (#9)
MODPOST 7282 modules

real 0m29.379s
user 1m50.586s
sys 0m41.047s

- do (the same) "make allmodconfig" in between, now rebuild time is
just over 41s:

[torvalds@i7 linux]$ make allmodconfig

[torvalds@i7 linux]$ time make -j32
scripts/kconfig/conf --syncconfig Kconfig
DESCEND objtool
CALL scripts/atomic/check-atomics.sh
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
GZIP kernel/config_data.gz
CHK kernel/kheaders_data.tar.xz
CC [M] kernel/configs.o
GEN kernel/kheaders_data.tar.xz
CC [M] kernel/kheaders.o
Building modules, stage 2.
Kernel: arch/x86/boot/bzImage is ready (#9)
MODPOST 7282 modules
LD [M] kernel/configs.ko
LD [M] kernel/kheaders.ko

real 0m41.326s
user 2m17.822s
sys 0m54.561s

No, this isn't the end of the world, but if somebody sees a simple
solution to avoid that extra ten seconds, I'd appreciate it.

Linus