On Sat, Jan 8, 2022 at 3:14 PM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > Hi all, > > On Fri, 7 Jan 2022 17:22:06 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > > > On Fri, 7 Jan 2022 17:13:19 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > > > > > Since yesterday, my builds are taking much longer and it seems just > > > about everything is being rebuilt when there should be very little done. > > > > > > One example is after mergeing the clockevents tree, the diffstat looks > > > like this: > > > > > > $ git diff --stat HEAD^.. > > > .../devicetree/bindings/timer/cdns,ttc.yaml | 3 + > > > .../bindings/timer/mstar,msc313e-timer.yaml | 46 ++++ > > > .../devicetree/bindings/timer/nxp,tpm-timer.yaml | 6 +- > > > .../devicetree/bindings/timer/renesas,ostm.yaml | 20 +- > > > .../bindings/timer/rockchip,rk-timer.yaml | 1 - > > > MAINTAINERS | 1 + > > > drivers/clocksource/Kconfig | 12 +- > > > drivers/clocksource/Makefile | 1 + > > > drivers/clocksource/exynos_mct.c | 52 +++-- > > > drivers/clocksource/renesas-ostm.c | 39 +++- > > > drivers/clocksource/timer-imx-sysctr.c | 6 +- > > > drivers/clocksource/timer-msc313e.c | 253 +++++++++++++++++++++ > > > drivers/clocksource/timer-pistachio.c | 3 +- > > > 13 files changed, 411 insertions(+), 32 deletions(-) > > > > > > but my powerpc and arm builds rebuilt basically everything. > > > > > > This happens for a lot of merges - though some do not rebuild very much > > > at all. > > > > > > Any ideas about what changed yesterday? (I directed this to the kbuild > > > tree maintainer since the kbuild tree was updated yesterday - though > > > that may be a coincidence). > > > > OK, it *may* have something to do with Kconfig file updates for example with this diffstat: > > > > .../memory-controllers/synopsys,ddrc-ecc.yaml | 1 + > > drivers/edac/Kconfig | 2 +- > > drivers/edac/amd64_edac.c | 36 ++++++++++++++- > > drivers/edac/amd64_edac.h | 8 +++- > > drivers/edac/edac_mc.c | 2 + > > drivers/edac/sb_edac.c | 2 +- > > drivers/edac/sifive_edac.c | 2 +- > > drivers/edac/synopsys_edac.c | 52 ++++++++++++++++++---- > > drivers/ras/cec.c | 2 +- > > include/linux/edac.h | 6 +++ > > 10 files changed, 98 insertions(+), 15 deletions(-) > > > > And only this Kconfig change: > > > > $ git diff HEAD^.. drivers/edac/Kconfig > > diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig > > index 2fc4c3f91fd5..58ab63642e72 100644 > > --- a/drivers/edac/Kconfig > > +++ b/drivers/edac/Kconfig > > @@ -484,7 +484,7 @@ config EDAC_ARMADA_XP > > > > config EDAC_SYNOPSYS > > tristate "Synopsys DDR Memory Controller" > > - depends on ARCH_ZYNQ || ARCH_ZYNQMP > > + depends on ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_INTEL_SOCFPGA > > help > > Support for error detection and correction on the Synopsys DDR > > memory controller. > > > > I noticed that the following files have changed (timestamp at least) in > > the object directory: > > > > -rw-r--r-- 1 sfr users 46271 Jan 7 17:09 ./include/config/auto.conf.cmd > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/DEFAULT_TCP_CONG > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/DEFAULT_INIT > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/BUILD_SALT > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/RTC_SYSTOHC_DEVICE > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/EXTRA_TARGETS > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/CC_IMPLICIT_FALLTHROUGH > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/RTC_HCTOSYS_DEVICE > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/EXTRA_FIRMWARE > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/DEFAULT_HOSTNAME > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/CC_VERSION_TEXT > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/MODPROBE_PATH > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/LOCALVERSION > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/INITRAMFS_SOURCE > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/FAT_DEFAULT_IOCHARSET > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/CMDLINE > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/NLS_DEFAULT > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/MAGIC_SYSRQ_SERIAL_SEQUENCE > > -rw-r--r-- 1 sfr users 0 Jan 7 17:09 ./include/config/LSM > > -rw-r--r-- 1 sfr users 54294 Jan 7 17:09 ./include/generated/autoconf.h > > -rw-r--r-- 1 sfr users 39198 Jan 7 17:09 ./include/config/auto.conf > > > > then lots more is rebuilt. > > Bisection points to commit > > 33c1957574b6 ("kbuild: do not quote string values in include/config/auto.conf") > > from the kbuild tree and indeed if I revert commits > > ec769168623b ("microblaze: use built-in function to get CPU_{MAJOR,MINOR,REV}") > 98bb79d61f0c ("certs: move scripts/extract-cert to certs/") > 33c1957574b6 ("kbuild: do not quote string values in include/config/auto.conf") > > from the merge of the kbuild tree into linux-next (up to that point), > the problem goes away. > > My test case is this: > > $ rm -rf ../test > $ mkdir ../test > $ make ARCH=powerpc O=../test -s ppc64_defconfig > $ make ARCH=powerpc O=../test -j40 -O init/main.o > (edit drivers/edac/Kconfig as above) > $ make ARCH=powerpc O=../test -s ppc64_defconfig > $ make ARCH=powerpc O=../test -j40 -O init/main.o > > In the good case, none of the files in ../test/include/config > representing CONFIG_ options are changed and init/main.o is not > rebuilt. In the bad case some of the files above (in > ../test/include/config) are touched and init/main.o is rebuilt. > > Please see if you can figure out what actually is wrong with > 33c1957574b6 or else remove those commits from the kbuild tree (or > revert them). This extra rebuilding is adding about 7 hours to my day > :-( Sorry for the annoyance. As you noticed, this is a bug of 33c1957574b6. I fixed it and updated linux-kbuild/for-next. Hopefully, it should be fine for monday's linux-next. -- Best Regards Masahiro Yamada