Re: [PATCH v1 1/1] delay: Replace kernel.h with the necessary inclusions

From: Andy Shevchenko
Date: Thu Oct 28 2021 - 13:31:12 EST


On Thu, Oct 28, 2021 at 09:28:10AM -0700, Guenter Roeck wrote:
> On Thu, Oct 28, 2021 at 06:58:13PM +0300, Andy Shevchenko wrote:
> > On Thu, Oct 28, 2021 at 08:30:55AM -0700, Guenter Roeck wrote:
> > > On Wed, Oct 27, 2021 at 06:03:24PM +0300, Andy Shevchenko wrote:
> > > > When kernel.h is used in the headers it adds a lot into dependency hell,
> > > > especially when there are circular dependencies are involved.
> > > >
> > > > Replace kernel.h inclusion with the list of what is really being used.
> > > >
> > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> > >
> > > In next-20211028:
> > >
> > > Building riscv32:defconfig ... failed
> > > --------------
> > > Error log:
> > > arch/riscv/lib/delay.c: In function '__delay':
> > > arch/riscv/lib/delay.c:77:17: error: implicit declaration of function 'cpu_relax'
> > >
> > > Building riscv:defconfig ... failed
> > > --------------
> > > Error log:
> > > arch/riscv/lib/delay.c: In function '__delay':
> > > arch/riscv/lib/delay.c:77:17: error: implicit declaration of function 'cpu_relax'
> > >
> > > Building s390:defconfig ... failed
> > > --------------
> > > Error log:
> > > <stdin>:1559:2: warning: #warning syscall futex_waitv not implemented [-Wcpp]
> > > In file included from arch/s390/pci/pci_insn.c:12:
> > > arch/s390/include/asm/facility.h: In function '__stfle':
> > > arch/s390/include/asm/facility.h:98:22: error: implicit declaration of function 'min_t'
> > >
> > > bisect to this patch. Probably more, but it is difficult to find out
> > > since -next is too badly broken and has build failures all over the place.
> >
> > Thanks for the report!

I'll send the fix for above soon. Hope it will reduce amount of failures.

> > I have run it on x86_64 with `kcbench -m ...` and no failures.
> >
> > Can you share all build errors you found so far? I believe none of them related
> > to x86* code.
> >
> > Above just revealed the problematic places in the first place. Why the
> > programmers rely on delay.h to include full bloated header pile?! (Yeah, this
> > is rhetorical, so please share the errors, I'll try to address them)
>
> The ones listed above are the ones I was able to identify. As I said, there
> are so many compile and runtime failures in linux-next that it is difficult
> to track down individual failures.

Yeah, for example, I looked into this: https://kerneltests.org/builders/next-mips-next/builds/698/steps/buildcommand/logs/stdio

I can't see how my patch is related to this...

> Just to give you an idea (this is for
> next-20211028):
>
> Build results:
> total: 153 pass: 115 fail: 38
> Failed builds:
> alpha:allmodconfig
> arm:allmodconfig
> arm:omap2plus_defconfig
> arm:davinci_all_defconfig
> arm64:defconfig
> arm64:allmodconfig
> csky:allmodconfig
> h8300:allnoconfig
> h8300:tinyconfig
> h8300:edosk2674_defconfig
> h8300:h8300h-sim_defconfig
> h8300:h8s-sim_defconfig
> m68k:allmodconfig
> mips:defconfig
> mips:allmodconfig
> mips:allnoconfig
> mips:tinyconfig
> mips:bcm47xx_defconfig
> mips:bcm63xx_defconfig
> mips:ath79_defconfig
> mips:ar7_defconfig
> mips:e55_defconfig
> mips:cavium_octeon_defconfig
> mips:malta_defconfig
> mips:rt305x_defconfig
> nds32:allmodconfig
> parisc:allmodconfig
> parisc:generic-32bit_defconfig
> parisc64:generic-64bit_defconfig
> powerpc:allmodconfig
> riscv32:defconfig
> riscv32:allmodconfig
> riscv:defconfig
> riscv:allmodconfig
> s390:defconfig
> s390:allmodconfig
> sparc64:allmodconfig
> xtensa:allmodconfig
> Qemu test results:
> total: 480 pass: 315 fail: 165
> Failed tests:
> <too many to list them all>
>
> Build and boot logs are as always at https://kerneltests.org/builders
> in the 'next' column in case you want to do some digging yourself.

--
With Best Regards,
Andy Shevchenko