This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/60295] [4.9 Regression] Too many lto1-wpa-stream processes are forked
- From: "hubicka at ucw dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 20 Feb 2014 23:27:10 +0000
- Subject: [Bug lto/60295] [4.9 Regression] Too many lto1-wpa-stream processes are forked
- Auto-submitted: auto-generated
- References: <bug-60295-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60295
--- Comment #1 from Jan Hubicka <hubicka at ucw dot cz> ---
> It happens during a GCC LTO+FDO bootstrap with
>
> ../src-trunk/configure \
> --prefix=/usr/4.9.0 --enable-clocale=gnu --with-system-zlib
> --enable-shared --with-demangler-in-ld --with-build-config=bootstrap-lto
> --disable-werro
> r --with-fpmath=sse --enable-languages=c,c++,fortran,java,lto,objc
>
> make -j 8 -C bld profiledbootstrap
>
> There are more than 120 lto1-wpa-stream processes forked due to r207515.
> Are they really necessary?
This does not happen for me.
What -flto parameter you use? If you pass -flto or -flto=jobserv, you won't
get multiple WPA forks from one LTO compilation. If you pass -flto=16 as I
do, you will get 16 processes, if you manage to build 16 binaries at once,
you will get 16^2.
But just minute later you would get 16^2 ltrans processes, too, so I do not
see this introducing a new bottleneck. I did some measurements of forked
WPA memory use and it was always bellow ltrans use.
Since bootstrap-lto passes only -flto, it also may be just some bug in parsing
the parameters?
stream_out (char *temp_filename, lto_symtab_encoder_t encoder, bool last)
{
#ifdef HAVE_WORKING_FORK
static int nruns;
if (!lto_parallelism || lto_parallelism == 1)
{
do_stream_out (temp_filename, encoder);
return;
}
... eventually do the fork.
What is lto_paralellism for you?
Honza
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.