[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171110062640.kjqpo4houbybzjex@gmail.com>
Date: Fri, 10 Nov 2017 07:26:40 +0100
From: Ingo Molnar <mingo@...nel.org>
To: Masahiro Yamada <yamada.masahiro@...ionext.com>
Cc: linux-kbuild@...r.kernel.org, linux-kernel@...r.kernel.org,
Michal Marek <michal.lkml@...kovi.net>,
Sam Ravnborg <sam@...nborg.org>,
Douglas Anderson <dianders@...omium.org>,
Michal Marek <mmarek@...e.com>, x86@...nel.org,
"H. Peter Anvin" <hpa@...or.com>,
Thomas Gleixner <tglx@...utronix.de>,
Andy Lutomirski <luto@...capital.net>,
Ingo Molnar <mingo@...hat.com>
Subject: Re: [PATCH 3/4] kbuild: create object directories simpler and faster
* Masahiro Yamada <yamada.masahiro@...ionext.com> wrote:
> For the out-of-tree build, scripts/Makefile.build creates output
> directories, but this operation is not efficient.
>
> scripts/Makefile.lib calculates obj-dirs as follows:
>
> obj-dirs := $(dir $(multi-objs) $(obj-y))
>
> Please notice $(sort ...) is not used here. Usually the resulted
> obj-dirs is as many "./" as objects.
>
> For those duplicated paths, the following command is invoked.
>
> _dummy := $(foreach d,$(obj-dirs), $(shell [ -d $(d) ] || mkdir -p $(d)))
>
> Then, the costly shell command is run over and over again.
>
> I see many points for optimization:
>
> [1] Use $(sort ...) to cut down duplicated paths before passing them
> to system call
> [2] Use single $(shell ...) instead of repeating it with $(foreach ...)
> This will reduce forking.
> [3] We can calculate obj-dirs more simply. Most of objects are already
> accumulated in $(targets). So, $(dir $(targets)) is fine and more
> comprehensive.
>
> I also removed bad code in arch/x86/entry/vdso/Makefile. This is now
> really unnecessary.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@...ionext.com>
> ---
>
> arch/x86/entry/vdso/Makefile | 4 ----
> scripts/Makefile.build | 15 ++++++---------
> scripts/Makefile.host | 11 -----------
> scripts/Makefile.lib | 5 -----
> 4 files changed, 6 insertions(+), 29 deletions(-)
I love not just the speedup, but the diffstat as well ;-)
Acked-by: Ingo Molnar <mingo@...nel.org>
Thanks,
Ingo
Powered by blists - more mailing lists