Messages in this thread | | | From | Marco Elver <> | Date | Tue, 26 May 2020 15:12:26 +0200 | Subject | Re: [PATCH -tip v3 09/11] data_race: Avoid nested statement expression |
| |
On Tue, 26 May 2020 at 14:19, Arnd Bergmann <arnd@arndb.de> wrote: > > On Tue, May 26, 2020 at 2:02 PM Will Deacon <will@kernel.org> 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
| |