On Tue, 26 May 2020 at 14:19, Arnd Bergmann <[email protected]> wrote: > > On Tue, May 26, 2020 at 2:02 PM Will Deacon <[email protected]> wrote: > > On Tue, May 26, 2020 at 12:42:16PM +0200, Arnd Bergmann wrote: > > > > > > I find this patch only solves half the problem: it's much faster than > > > without the > > > patch, but still much slower than the current mainline version. As far as > > > I'm > > > concerned, I think the build speed regression compared to mainline is not > > > yet > > > acceptable, and we should try harder. > > > > > > I have not looked too deeply at it yet, but this is what I found from > > > looking > > > at a file in a randconfig build: > > > > > > Configuration: see https://pastebin.com/raw/R9erCwNj > > > > So this .config actually has KCSAN enabled. Do you still see the slowdown > > with that disabled? > > Yes, enabling or disabling KCSAN seems to make no difference to > compile speed in this config and source file, I still get the 12 seconds > preprocessing time and 9MB file size with KCSAN disabled, possibly > a few percent smaller/faster. I actually thought that CONFIG_FTRACE > had a bigger impact, but disabling that also just reduces the time > by a few percent rather than getting it down to the expected milliseconds. > > > Although not ideal, having a longer compiler time when > > the compiler is being asked to perform instrumentation doesn't seem like a > > show-stopper to me. > > I agree in general, but building an allyesconfig kernel is still an important > use case that should not take twice as long after a small kernel change > regardless of whether a new feature is used or not. (I have not actually > compared the overall build speed for allmodconfig, as this takes a really > long time at the moment)
Note that an 'allyesconfig' selects KASAN and not KCSAN by default. But I think that's not relevant, since KCSAN-specific code was removed from ONCEs. In general though, it is entirely expected that we have a bit longer compile times when we have the instrumentation passes enabled. But as you pointed out, that's irrelevant, and the significant overhead is from parsing and pre-processing. FWIW, we can probably optimize Clang itself a bit: https://github.com/ClangBuiltLinux/linux/issues/1032#issuecomment-633712667 Thanks, -- Marco

