From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: Linus Torvalds <torvalds@linuxfoundation.org>
Cc: David Laight <David.Laight@aculab.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
Christoph Hellwig <hch@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Dan Carpenter <dan.carpenter@linaro.org>,
Arnd Bergmann <arnd@kernel.org>,
"Jason@zx2c4.com" <Jason@zx2c4.com>,
"pedro.falcato@gmail.com" <pedro.falcato@gmail.com>,
Mateusz Guzik <mjguzik@gmail.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: [PATCH 0/7] minmax: reduce compilation time
Date: Fri, 26 Jul 2024 19:56:31 +0100 [thread overview]
Message-ID: <137646a7-7017-490d-be78-5bd5627609c3@lucifer.local> (raw)
In-Reply-To: <CAHk-=whsMPLro6RDY7GrjvXpy+WYPOL-AW5jrzwZ8P4GPBHxag@mail.gmail.com>
On Fri, Jul 26, 2024 at 11:24:09AM GMT, Linus Torvalds wrote:
> On Fri, 26 Jul 2024 at 11:13, Lorenzo Stoakes
> <lorenzo.stoakes@oracle.com> wrote:
> >
> > 5,447,539 ./arch/x86/xen/setup.o.pre
>
> Can you perhaps do some kind of "max expansion" on all the
> preprocessor files (you seem to have done it by changing the ".c.o"
> rule to just spit it out as "o.pre", which sounds fine).
Yeah I simply hacked in a gcc -E, ugly but effective, e.g. prepending
cmd_cc_o_c in scripts/Makefile.build with:
cmd_cc_o_c = $(CC) $(c_flags) -E $< > $@.pre; \
(with credit to Arnd, who came up with a timing patch using a similar
technique, I just super trivially adapted to do this instead).
I therefore generate a bunch of .pre files, + run this to get total
numbers:
find . -iname '*.pre' -exec du -cb {} + | grep total$ | cut -f1 | paste -sd+ - | bc
So I have the numbers for all of the files. Did you want me to post the
numbers somewhere, or were you after someting cleverer, not sure what you
mean by "max expansion"?
>
> For example, this trivial patch seems to fix the setup.c expansion by
> about an order of magnitude (ie 50M -> 5M).
>
> Entirely untested, but looks ObviouslyCorrect(tm) to me.
>
> Linus
>
> Linus
Yeah this has a big impact, with just this patch we go from 51,407,944 to
4,351,747 locally for me, so match your results.
Patch looks obviously correct to me, I wonder if we should just apply that
now and take out one of the worst offenders while we figure out how to fix
the broader problem?
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> fwiw on that :)
next prev parent reply other threads:[~2024-07-26 18:56 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-24 14:26 David Laight
2024-07-24 14:28 ` [PATCH 1/7] minmax: Put all the clamp() definitions together David Laight
2024-07-24 14:29 ` [PATCH 2/7] minmax: Use _Static_assert() instead of static_assert() David Laight
2024-07-24 14:29 ` [PATCH 3/7] compiler.h: Add __if_constexpr(expr, if_const, if_not_const) David Laight
2024-07-24 17:32 ` Arnd Bergmann
2024-07-25 9:12 ` David Laight
2024-07-24 19:48 ` Linus Torvalds
2024-07-25 8:45 ` David Laight
2024-07-24 14:30 ` [PATCH 4/7] minmax: Simplify signedness check David Laight
2024-07-24 16:48 ` Arnd Bergmann
2024-07-24 20:02 ` Linus Torvalds
2024-07-25 9:00 ` David Laight
2024-07-25 17:02 ` Linus Torvalds
2024-07-26 9:43 ` Lorenzo Stoakes
2024-07-26 12:57 ` David Laight
2024-07-26 13:27 ` Lorenzo Stoakes
2024-07-25 13:24 ` kernel test robot
2024-07-25 16:39 ` David Laight
2024-07-24 14:31 ` [PATCH 5/7] minmax: Factor out the zero-extension logic from umin/umax David Laight
2024-07-24 14:32 ` [PATCH 6/7] minmax: Optimise _Static_assert() check in clamp() David Laight
2024-07-24 14:33 ` [PATCH 7/7] minmax: minmax: Add __types_ok3() and optimise defines with 3 arguments David Laight
2024-07-24 17:03 ` Arnd Bergmann
2024-07-25 9:07 ` David Laight
2024-07-24 19:34 ` [PATCH 0/7] minmax: reduce compilation time Lorenzo Stoakes
2024-07-24 19:52 ` Linus Torvalds
2024-07-26 18:12 ` Lorenzo Stoakes
2024-07-26 18:24 ` Linus Torvalds
2024-07-26 18:56 ` Lorenzo Stoakes [this message]
2024-07-26 19:21 ` Lorenzo Stoakes
2024-07-26 21:36 ` Linus Torvalds
2024-07-26 21:46 ` Jens Axboe
2024-07-26 22:48 ` Linus Torvalds
2024-07-27 15:30 ` Jens Axboe
2024-07-27 15:38 ` Jens Axboe
2024-07-27 16:31 ` Lorenzo Stoakes
2024-07-27 16:36 ` Jens Axboe
2024-07-27 16:41 ` Lorenzo Stoakes
2024-07-27 16:52 ` Jens Axboe
2024-07-27 16:56 ` Lorenzo Stoakes
2024-07-28 11:32 ` David Laight
2024-07-27 4:13 ` Linus Torvalds
2024-07-27 4:14 ` Linus Torvalds
2024-07-27 8:08 ` David Laight
2024-07-27 18:58 ` Lorenzo Stoakes
2024-07-27 19:21 ` Linus Torvalds
2024-07-28 11:17 ` David Laight
2024-07-28 13:07 ` Lorenzo Stoakes
2024-07-27 17:33 ` Matthew Wilcox
2024-07-27 18:16 ` Linus Torvalds
2024-07-27 8:07 ` Lorenzo Stoakes
2024-07-27 16:26 ` Linus Torvalds
2024-07-27 18:44 ` Lorenzo Stoakes
2024-07-30 4:10 ` Linus Torvalds
2024-07-30 10:36 ` Arnd Bergmann
2024-07-28 17:57 ` Geert Uytterhoeven
2024-07-28 18:43 ` Lorenzo Stoakes
2024-07-26 21:32 ` David Laight
2024-07-26 21:38 ` Linus Torvalds
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=137646a7-7017-490d-be78-5bd5627609c3@lucifer.local \
--to=lorenzo.stoakes@oracle.com \
--cc=David.Laight@aculab.com \
--cc=Jason@zx2c4.com \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=arnd@kernel.org \
--cc=dan.carpenter@linaro.org \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mjguzik@gmail.com \
--cc=pedro.falcato@gmail.com \
--cc=torvalds@linuxfoundation.org \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox