Re: legitimate parallel make check?

2010-03-10 Thread Rainer Orth
IainS develo...@sandoe-acoustics.co.uk writes:

 that's really neat indeed - I should have spotted the potential looking at
 the code in contrib
 ...  although the site.exp is hardwired in btest.sh at present ;
  I guess one might be able to use .dejagnurc - just need to check on the
 order that the files are processed.

Far easier: just set the DEJAGNU environment variable to the absolute
path to the size.exp file.  runtest knows about that.

 hmm.  I see that the make check would work using that neat method above...
 ... however,

 1/ I want a different language list than the default...
 2/ also some other different configure options...

I've got some local patches for btest-gcc.sh which allow just that
(e.g. support for Ada testing), which I'll submit once I'm reasonably
confident they are general enough.

 but mainly
 3/
 ...  As I read it -  btest.sh strips everything but the testname from the
 PASSES and FAILS files. (the awk lines that print $2 for a match  of /FAIL:
 / etc.)
 This means (e.g.) that if a test passes at m32 and fails at m64 I think it
 will appear in both PASSES and FAILS..
 ...  this seems destined to result in confusion...

You can still use make mail-report.log in the build subdir to get the
complete summary; besides, there's still contrib/dg-cmp-results.sh
(which I haven't checked out yet).

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: legitimate parallel make check?

2010-03-10 Thread IainS


On 10 Mar 2010, at 09:12, Rainer Orth wrote:


IainS develo...@sandoe-acoustics.co.uk writes:

that's really neat indeed - I should have spotted the potential  
looking at

the code in contrib
...  although the site.exp is hardwired in btest.sh at present ;
I guess one might be able to use .dejagnurc - just need to check on  
the

order that the files are processed.


Far easier: just set the DEJAGNU environment variable to the absolute
path to the size.exp file.  runtest knows about that.

the DEJAGNU env. var is set in btest.sh

hmm.  I see that the make check would work using that neat method  
above...

... however,

1/ I want a different language list than the default...
2/ also some other different configure options...


I've got some local patches for btest-gcc.sh which allow just that
(e.g. support for Ada testing), which I'll submit once I'm reasonably
confident they are general enough.

OK - (but I'm happy that my local mods for this are also working).


but mainly
3/
...  As I read it -  btest.sh strips everything but the testname  
from the
PASSES and FAILS files. (the awk lines that print $2 for a match   
of /FAIL:

/ etc.)
This means (e.g.) that if a test passes at m32 and fails at m64 I  
think it

will appear in both PASSES and FAILS..
...  this seems destined to result in confusion...


You can still use make mail-report.log in the build subdir to get the
complete summary; besides, there's still contrib/dg-cmp-results.sh
(which I haven't checked out yet).


contrib/compare_tests is good (I was thinking to merge the capability  
of that with the capability of btest.sh)

meetings today... so until later

I can't find a hardware fault -- but I'm exploring a hunch about a  
FBKAC 


Iain



Re: legitimate parallel make check?

2010-03-10 Thread Office Admin


On 10 Mar 2010, at 09:22, IainS wrote:


Far easier: just set the DEJAGNU environment variable to the absolute
path to the size.exp file.  runtest knows about that.

the DEJAGNU env. var is set in btest.sh



my mistake.
duh - that's what comes of working with code that was forked a long  
time ago ..

.. it isn't set in the current version..
Iain


Re: legitimate parallel make check?

2010-03-10 Thread Rainer Orth
IainS develo...@sandoe-acoustics.co.uk writes:

 Far easier: just set the DEJAGNU environment variable to the absolute
 path to the size.exp file.  runtest knows about that.
 the DEJAGNU env. var is set in btest.sh

It's not:

$ grep DEJAGNU contrib/regression/btest-gcc.sh
# DEJAGNU: should point to a site.exp suitable for testing

 I've got some local patches for btest-gcc.sh which allow just that
 (e.g. support for Ada testing), which I'll submit once I'm reasonably
 confident they are general enough.
 OK - (but I'm happy that my local mods for this are also working).

Without doubt, but why should everyone trying to use this have to
reinvent the wheel?

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: legitimate parallel make check?

2010-03-10 Thread IainS

FWIW;
the bus errors were consistently coming from expect in a strcpy [about  
100 tcl levels down]
the actual fault was a corrupted dejagnu installation - it's not clear  
how that happened - nothing present in syslogs to indicate disk  
problems.

a clean install of dejagnu appears to have cleared the problem.

On 10 Mar 2010, at 09:47, Rainer Orth wrote:


IainS develo...@sandoe-acoustics.co.uk writes:

I've got some local patches for btest-gcc.sh which allow just that
(e.g. support for Ada testing), which I'll submit once I'm  
reasonably

confident they are general enough.

OK - (but I'm happy that my local mods for this are also working).


Without doubt, but why should everyone trying to use this have to
reinvent the wheel?


indeed, I have every intention of sharing my changes too (at least  
those that are of any merit).


thanks for the help, and apologies that it was noise in the end...
Iain


Re: legitimate parallel make check?

2010-03-09 Thread Rainer Orth
IainS develo...@sandoe-acoustics.co.uk writes:

 on my mere 8 cores :-)   I'm still getting sporadic Bus errors on:

 make -k -j8 check RUNTESTFLAGS ... 
 [from the command line on a bootstrapped clean trunk @157307]

 so there's something else wrong somewhere...

Probably make gets SIGBUS, which obviously won't be in the runtest output.

 ... I guess a target-related issue ({i686,powerpc}-apple-darwin9)

Or simply a hardware issue?

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: legitimate parallel make check?

2010-03-09 Thread IainS


On 9 Mar 2010, at 12:10, Rainer Orth wrote:


IainS develo...@sandoe-acoustics.co.uk writes:


Am I trying something that is unsupported - or is this is a bug?

===

make -k -j8 check  is not particularly helpful (a) because it tests
gmp/mpfr/mpc every time (b) any redirected output is hard to scan for
problems.


What you're trying is far too complicated: just use -k -jN check  
from
the toplevel and forget about the make check output, which, as you  
say,

is interleaved and useless, just like the make -jN bootstrap output.


OK.


Instead, run make mail-report.log afterwards and check that.


Although, I note that contrib/test_summary only reports what gets into  
the *.sum files -- i.e. tests that complete or timeout.
It doesn't log problems in the actual make process itself - to find  
those one still has to trawl through the interleaved stuff.


It would be nice to allow the apparently independent targets [e.g. gcc- 
c,fortran,c++ etc.] to be (explicitly) make-checked in parallel.


thanks,
Iain


Re: legitimate parallel make check?

2010-03-09 Thread Rainer Orth
IainS develo...@sandoe-acoustics.co.uk writes:

 Instead, run make mail-report.log afterwards and check that.

 Although, I note that contrib/test_summary only reports what gets into the
 *.sum files -- i.e. tests that complete or timeout.
 It doesn't log problems in the actual make process itself - to find those
 one still has to trawl through the interleaved stuff.

No, you haven't.  You need to look at the corresponding *.log files
instead; most of this isn't in the regular make check output anyway.

 It would be nice to allow the apparently independent targets [e.g. gcc-
 c,fortran,c++ etc.] to be (explicitly) make-checked in parallel.

This is exactly what happens when you invoke make -jN -k check,
provided that the parallelism specified is big enough (and the machine
can handle the load).  Otherwise, you may end up running (say) the c
testsuite in parallel, which isn't bad either.

As I wrote before, I'm going to use this on an (effectively) 64-core
machine and hope to achieve to use all cores in parallel :-)

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: legitimate parallel make check?

2010-03-09 Thread Tim Prince

On 3/9/2010 4:28 AM, IainS wrote:



It would be nice to allow the apparently independent targets [e.g. 
gcc-c,fortran,c++ etc.] to be (explicitly) make-checked in parallel.



On certain targets, it has been necessary to do this explicitly for a 
long time, submitting make check-gcc, make check-fortran, make check-g++ 
separately.  Perhaps a script could be made which would detect when the 
build is complete, then submit the separate make check serial jobs together.



--
Tim Prince



Re: legitimate parallel make check?

2010-03-09 Thread IainS


On 9 Mar 2010, at 12:46, Rainer Orth wrote:


IainS develo...@sandoe-acoustics.co.uk writes:


Instead, run make mail-report.log afterwards and check that.


... snip


suite in parallel, which isn't bad either.


As I wrote before, I'm going to use this on an (effectively) 64-core
machine and hope to achieve to use all cores in parallel :-)


on my mere 8 cores :-)   I'm still getting sporadic Bus errors on:

make -k -j8 check RUNTESTFLAGS ... 
[from the command line on a bootstrapped clean trunk @157307]

so there's something else wrong somewhere...
... I guess a target-related issue ({i686,powerpc}-apple-darwin9)

(note that this error does *not* get into the .log files, AFAICS)

Iain



Re: legitimate parallel make check?

2010-03-09 Thread Rainer Orth
IainS develo...@sandoe-acoustics.co.uk writes:

 Am I trying something that is unsupported - or is this is a bug?

 ===

 make -k -j8 check  is not particularly helpful (a) because it tests
 gmp/mpfr/mpc every time (b) any redirected output is hard to scan for
 problems.

What you're trying is far too complicated: just use -k -jN check from
the toplevel and forget about the make check output, which, as you say,
is interleaved and useless, just like the make -jN bootstrap output.

Instead, run make mail-report.log afterwards and check that.

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: legitimate parallel make check?

2010-03-09 Thread IainS


On 9 Mar 2010, at 19:13, Janis Johnson wrote:

To run all of the compiler tests in parallel you can do make -jn -k  
check-gcc from the top level and let the existing build machinery  
take care of running chunks of tests in parallel and putting the  
results back together.


that's fine (I couldn't see why not from looking at Makefile.in)
 (maybe Rainer is right and I have a memory fault on my 8-core  
box .. :-(  ) -- just backing up prior to a single user check of  
that ...


..  I don't seem to get the bus errors on a 4CPU g5 or a Core 2 duo ..  
but .. the 8-core machine is faster .. so ... race conditions are more  
likely to manifest there.



You'd still have to handle the library tests you want to run.


I assume that  make -jn -k check-target RUNTESTFLAGS  is equally  
reasonable?


Perhaps what you want is a way to skip the host library testing,  
although if you're building them with your new compiler then testing  
them is a good part of testing that compiler.


I do build gmp/mpfr/mpc in-tree...
given that I almost always run the whole testsuite - I'm torn between  
thinking it's a good idea..
... and that I'm essentially proving little when the versions of gmp/ 
mpfr/and mpc are static.


--

FWIW: I'm trying to update contrib/btest.sh script to handle m32  m64  
plus a few other things ...


Iain


Re: legitimate parallel make check?

2010-03-09 Thread NightStrike
On Tue, Mar 9, 2010 at 2:27 PM, IainS develo...@sandoe-acoustics.co.uk wrote:
 I do build gmp/mpfr/mpc in-tree...

How?  Last I tried, it didn't work, as mpc used the system gmp/mpfr,
not the just-built in-tree versions.  Therefore, it's not really an
in-tree build, and you can't build on a system that doesn't already
have gmp/mpfr installed.  At least, that's what it was... does that
work now?


Re: legitimate parallel make check?

2010-03-09 Thread Rainer Orth
IainS develo...@sandoe-acoustics.co.uk writes:

 ..  I don't seem to get the bus errors on a 4CPU g5 or a Core 2 duo .. but
 .. the 8-core machine is faster .. so ... race conditions are more  likely
 to manifest there.

But race conditions don't manifest themselves in make SEGVs ;-(  I'm
regularly running make -k -j128 on a T5220, or -j32 on a Sun Fire X4450
with 4 4-core CPUs, without any problems.

 You'd still have to handle the library tests you want to run.

 I assume that  make -jn -k check-target RUNTESTFLAGS  is equally
 reasonable?

Indeed, as well as using a site.exp and pointing the DEJAGNU environment
variable at it, as I've learned from looking at the regression tester
sources in contrib/regression.  Here's what I use for that:

global target_list

case $target_triplet in {
{ i?86-*-solaris2.1[0-9] } {
# FIXME: Disable multilib testing if the host cannot execute AMD64
# binaries.  Should be exceedingly rare now (cf. erebus).
set target_list { unix{,-m64} }
}
{ mips-sgi-irix6* } {
# FIXME: Disable multilib testing if the host cannot execute N64
# binaries.  We cannot selectively disable only one multilib during
# the build.
set target_list { unix{,-mabi=32,-mabi=64} }
}
{ sparc*-*-solaris2* } {
set target_list { unix{,-m64} }
}
default {
# Works for alpha*-*-osf*, i?86-*-solaris2.[89] and mips-sgi-irix5*
# testing. 
set target_list { unix }
}
}

 I do build gmp/mpfr/mpc in-tree...
 given that I almost always run the whole testsuite - I'm torn between
 thinking it's a good idea..
 ... and that I'm essentially proving little when the versions of gmp/
 mpfr/and mpc are static.

I'd keep gmp/mpfr/mpc at a fixed version, test them once, and be done
with it.  Testing the compiler and runtime libraries on its own takes
enough time already.

 FWIW: I'm trying to update contrib/btest.sh script to handle m32  m64 plus
 a few other things ...

No need: works already via DEJAGNU described above.

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: legitimate parallel make check?

2010-03-09 Thread IainS


On 9 Mar 2010, at 19:31, NightStrike wrote:

On Tue, Mar 9, 2010 at 2:27 PM, IainS develo...@sandoe-acoustics.co.uk 
 wrote:

I do build gmp/mpfr/mpc in-tree...


How?  Last I tried, it didn't work, as mpc used the system gmp/mpfr,
not the just-built in-tree versions.  Therefore, it's not really an
in-tree build, and you can't build on a system that doesn't already
have gmp/mpfr installed.  At least, that's what it was... does that
work now?


it's been  fixed for a while (resolution of PR42424)
I keep one copy of gmp mpfr and mpc in a directory at the root of my  
source disk and ln -s to that from within the different gcc source  
trees.


Iain




Re: legitimate parallel make check?

2010-03-09 Thread IainS


On 9 Mar 2010, at 19:36, Rainer Orth wrote:


IainS develo...@sandoe-acoustics.co.uk writes:

..  I don't seem to get the bus errors on a 4CPU g5 or a Core 2  
duo .. but
.. the 8-core machine is faster .. so ... race conditions are more   
likely

to manifest there.


But race conditions don't manifest themselves in make SEGVs ;-(  I'm
regularly running make -k -j128 on a T5220, or -j32 on a Sun Fire  
X4450


I'm running memchecks on my 8-core machine ..

Indeed, as well as using a site.exp and pointing the DEJAGNU  
environment

variable at it, as I've learned from looking at the regression tester
sources in contrib/regression.  Here's what I use for that:

global target_list

case $target_triplet in {
   { i?86-*-solaris2.1[0-9] } {
# FIXME: Disable multilib testing if the host cannot execute AMD64
# binaries.  Should be exceedingly rare now (cf. erebus).
set target_list { unix{,-m64} }
   }
   { mips-sgi-irix6* } {
# FIXME: Disable multilib testing if the host cannot execute N64
# binaries.  We cannot selectively disable only one multilib during
# the build.
set target_list { unix{,-mabi=32,-mabi=64} }
   }
   { sparc*-*-solaris2* } {
set target_list { unix{,-m64} }
   }
   default {
# Works for alpha*-*-osf*, i?86-*-solaris2.[89] and mips-sgi-irix5*
# testing.
   set target_list { unix }
   }
}


that's really neat indeed - I should have spotted the potential  
looking at the code in contrib

...  although the site.exp is hardwired in btest.sh at present ;
 I guess one might be able to use .dejagnurc - just need to check on  
the order that the files are processed.


FWIW: I'm trying to update contrib/btest.sh script to handle m32   
m64 plus

a few other things ...


No need: works already via DEJAGNU described above.


hmm.  I see that the make check would work using that neat method  
above...

... however,

1/ I want a different language list than the default...
2/ also some other different configure options...

but mainly
3/
...  As I read it -  btest.sh strips everything but the testname from  
the PASSES and FAILS files. (the awk lines that print $2 for a match  
of /FAIL: / etc.)
This means (e.g.) that if a test passes at m32 and fails at m64 I  
think it will appear in both PASSES and FAILS..

...  this seems destined to result in confusion...

I would like to  identify regressions separately for m32 and m64 -  
esp. in obj-c/c++ where there are huge differences on NeXT runtime  
systems.


if I've missed the blindingly obvious (the day job is taking up most  
of my mental resources ;-)) please point it out :-)


Iain