This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug lto/60295] [4.9 Regression] Too many lto1-wpa-stream processes are forked


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]