public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* How to add timeout to Ada tests on Linux/ia64?
@ 2004-03-25  2:55 H. J. Lu
  2004-03-25 12:43 ` Arnaud Charlet
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: H. J. Lu @ 2004-03-25  2:55 UTC (permalink / raw)
  To: gcc

Some Ada tests in gcc 3.4 keep hanging for me on Linux/ia64. I have to
kill them by hand. How do I add timeout in Ada tests?


H.J.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25  2:55 How to add timeout to Ada tests on Linux/ia64? H. J. Lu
@ 2004-03-25 12:43 ` Arnaud Charlet
  2004-03-25 14:23   ` Laurent GUERBY
  2004-03-25 13:06 ` Chris Proctor
  2004-04-21  5:58 ` H. J. Lu
  2 siblings, 1 reply; 22+ messages in thread
From: Arnaud Charlet @ 2004-03-25 12:43 UTC (permalink / raw)
  To: H. J. Lu; +Cc: gcc

> Some Ada tests in gcc 3.4 keep hanging for me on Linux/ia64. I have to

Is this something specific to the 3.4 branch ?

> kill them by hand. How do I add timeout in Ada tests?

That's not currently possible.

You can disable these tests by adding them in the norun.txt file in
gcc/testsuite/ada/acats

Arno

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25  2:55 How to add timeout to Ada tests on Linux/ia64? H. J. Lu
  2004-03-25 12:43 ` Arnaud Charlet
@ 2004-03-25 13:06 ` Chris Proctor
  2004-03-25 13:21   ` Arnaud Charlet
  2004-04-21  5:58 ` H. J. Lu
  2 siblings, 1 reply; 22+ messages in thread
From: Chris Proctor @ 2004-03-25 13:06 UTC (permalink / raw)
  To: gcc

On Wed, Mar 24, 2004 at 02:54:04PM -0800, H. J. Lu wrote:
> Some Ada tests in gcc 3.4 keep hanging for me on Linux/ia64. I have to
> kill them by hand. How do I add timeout in Ada tests?

The following change worked for me to stop some of the
tasking tests failing or hanging:
The One_Second constant is multiplied by all the delays
in the tasking tests.  I found on a loaded system the
supplied constant caused problems, I have had none since changing.
The tests still run 10x "realtime".

--
Chris Proctor

--- gcc/testsuite/ada/acats/support/impdef.a	27 Oct 2003 11:28:49 -0000	1.1
+++ gcc/testsuite/ada/acats/support/impdef.a	25 Mar 2004 07:59:10 -0000
@@ -338,7 +338,7 @@
 
 --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
 
-   One_Second : constant Duration := 0.001;
+   One_Second : constant Duration := 0.1;
 
 end ImpDef;
 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 13:06 ` Chris Proctor
@ 2004-03-25 13:21   ` Arnaud Charlet
  2004-03-25 14:21     ` Laurent GUERBY
  2004-03-25 14:29     ` Chris Proctor
  0 siblings, 2 replies; 22+ messages in thread
From: Arnaud Charlet @ 2004-03-25 13:21 UTC (permalink / raw)
  To: Chris Proctor; +Cc: gcc

> The following change worked for me to stop some of the
> tasking tests failing or hanging:
> The One_Second constant is multiplied by all the delays
> in the tasking tests.  I found on a loaded system the
> supplied constant caused problems, I have had none since changing.
> The tests still run 10x "realtime".

Thanks for the hint, that's an interesting likely candidate for some
'random' c9 failure indeed.

I guess Laurent Guerby was a little bit too optimistic when he changed the
value of this constant :-)

> --- gcc/testsuite/ada/acats/support/impdef.a	27 Oct 2003 11:28:49 -0000	1.1
> +++ gcc/testsuite/ada/acats/support/impdef.a	25 Mar 2004 07:59:10 -0000
> @@ -338,7 +338,7 @@
>  
>  --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
>  
> -   One_Second : constant Duration := 0.001;
> +   One_Second : constant Duration := 0.1;

Change looks good to me, I'd probably consider integrating it.

Laurent, could you give some figures on the time impact of such a
change ? Maybe 0.01 would be a sufficient compromise ?

Arno

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 13:21   ` Arnaud Charlet
@ 2004-03-25 14:21     ` Laurent GUERBY
  2004-03-25 14:24       ` Arnaud Charlet
  2004-03-25 14:29     ` Chris Proctor
  1 sibling, 1 reply; 22+ messages in thread
From: Laurent GUERBY @ 2004-03-25 14:21 UTC (permalink / raw)
  To: Arnaud Charlet; +Cc: Chris Proctor, gcc

On Thu, 2004-03-25 at 09:45, Arnaud Charlet wrote:
> > The following change worked for me to stop some of the
> > tasking tests failing or hanging:
> > The One_Second constant is multiplied by all the delays
> > in the tasking tests.  I found on a loaded system the
> > supplied constant caused problems, I have had none since changing.
> > The tests still run 10x "realtime".

"realtime" means nothing nowadays for ACATS which was designed for very
old machines. There are lots of 2 or 5 minutes delays in ACATS.

> Thanks for the hint, that's an interesting likely candidate for some
> 'random' c9 failure indeed.
> 
> I guess Laurent Guerby was a little bit too optimistic when he changed the
> value of this constant :-)

I did about 100 runs on an unloaded P3 1GHz before setting One_Second
to this value.

> > --- gcc/testsuite/ada/acats/support/impdef.a	27 Oct 2003 11:28:49 -0000	1.1
> > +++ gcc/testsuite/ada/acats/support/impdef.a	25 Mar 2004 07:59:10 -0000
> > @@ -338,7 +338,7 @@
> >  
> >  --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
> >  
> > -   One_Second : constant Duration := 0.001;
> > +   One_Second : constant Duration := 0.1;
> 
> Change looks good to me, I'd probably consider integrating it.
> 
> Laurent, could you give some figures on the time impact of such a
> change ? Maybe 0.01 would be a sufficient compromise ?

I think that 0.01 should do the work. It would help
if people seeing intermitent failures would report
them on this list.

BTW, I believe I still missed a few delays, I'll do another pass
one of these days :).

Laurent

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 12:43 ` Arnaud Charlet
@ 2004-03-25 14:23   ` Laurent GUERBY
  2004-03-25 17:20     ` H. J. Lu
  0 siblings, 1 reply; 22+ messages in thread
From: Laurent GUERBY @ 2004-03-25 14:23 UTC (permalink / raw)
  To: Arnaud Charlet; +Cc: H. J. Lu, gcc

On Thu, 2004-03-25 at 09:18, Arnaud Charlet wrote:
> > kill them by hand. How do I add timeout in Ada tests?

H.J. could you report the problematic tests to this list?

> That's not currently possible.

When I was at ACT I wrote a small "tlimit" program

$ tlimit 60 command

that would limit to 60 second wall clock the execution of command,
may be there's such a thing in the current testing infrastructure?

Laurent


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 14:21     ` Laurent GUERBY
@ 2004-03-25 14:24       ` Arnaud Charlet
  2004-03-25 14:28         ` Laurent GUERBY
  0 siblings, 1 reply; 22+ messages in thread
From: Arnaud Charlet @ 2004-03-25 14:24 UTC (permalink / raw)
  To: Laurent GUERBY; +Cc: Arnaud Charlet, Chris Proctor, gcc

> I did about 100 runs on an unloaded P3 1GHz before setting One_Second
> to this value.

I guess you should also have made a few runs with a *loaded* machine.

> I think that 0.01 should do the work. It would help
> if people seeing intermitent failures would report
> them on this list.

Note that what we're discussing here would only avoid intermittent failures
in the c9 tests, so if there are failures in other chapters, that's likely
something else (and probably a real issue).

Arno

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 14:24       ` Arnaud Charlet
@ 2004-03-25 14:28         ` Laurent GUERBY
  0 siblings, 0 replies; 22+ messages in thread
From: Laurent GUERBY @ 2004-03-25 14:28 UTC (permalink / raw)
  To: Arnaud Charlet; +Cc: Chris Proctor, gcc

On Thu, 2004-03-25 at 12:31, Arnaud Charlet wrote:
> > I did about 100 runs on an unloaded P3 1GHz before setting One_Second
> > to this value.
> 
> I guess you should also have made a few runs with a *loaded* machine.

You misunderstood the process, you need reference conditions to measure
something, I just set it to 1GHz P3. With a load of 2 without
swapping, that reference just would have been a 500MHz P3, but
that's still an arbirary choice :). When swapping or heavy I/O all bets
are off anyway (with 2.4 kernels at least).

Laurent


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 13:21   ` Arnaud Charlet
  2004-03-25 14:21     ` Laurent GUERBY
@ 2004-03-25 14:29     ` Chris Proctor
  2004-03-25 15:04       ` Arnaud Charlet
  1 sibling, 1 reply; 22+ messages in thread
From: Chris Proctor @ 2004-03-25 14:29 UTC (permalink / raw)
  To: gcc

On Thu, Mar 25, 2004 at 09:45:51AM +0100, Arnaud Charlet wrote:
> 
> Change looks good to me, I'd probably consider integrating it.
> 
> Laurent, could you give some figures on the time impact of such a
> change ? Maybe 0.01 would be a sufficient compromise ?
> 

I tried 0.01 but still basicly got the same intermittant failures.
My system is a linux SMP dual-1Ghz PIII.
The load is two mersene prime calculations in the background,
plus the load from testing and any other random processes running.

I haven't looked lately, but I dont remember this constant being
used in a lot of test cases, but I could be mistaken.

--
Chris Proctor.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 14:29     ` Chris Proctor
@ 2004-03-25 15:04       ` Arnaud Charlet
  2004-03-25 22:35         ` Chris Proctor
  0 siblings, 1 reply; 22+ messages in thread
From: Arnaud Charlet @ 2004-03-25 15:04 UTC (permalink / raw)
  To: Chris Proctor; +Cc: gcc

> I tried 0.01 but still basicly got the same intermittant failures.

Please tell us which failures you're seeing, because we're discussing
in the dark otherwise.

Arno

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 14:23   ` Laurent GUERBY
@ 2004-03-25 17:20     ` H. J. Lu
  0 siblings, 0 replies; 22+ messages in thread
From: H. J. Lu @ 2004-03-25 17:20 UTC (permalink / raw)
  To: Laurent GUERBY; +Cc: Arnaud Charlet, gcc

On Thu, Mar 25, 2004 at 12:29:17PM +0100, Laurent GUERBY wrote:
> On Thu, 2004-03-25 at 09:18, Arnaud Charlet wrote:
> > > kill them by hand. How do I add timeout in Ada tests?
> 
> H.J. could you report the problematic tests to this list?

It keeps changing from one day to another. In

http://gcc.gnu.org/ml/gcc-testresults/2004-03/msg00525.html

most of Ada test failures are hanging. I had to kill thme by hand.

> 
> > That's not currently possible.
> 
> When I was at ACT I wrote a small "tlimit" program
> 
> $ tlimit 60 command
> 
> that would limit to 60 second wall clock the execution of command,
> may be there's such a thing in the current testing infrastructure?
> 
> Laurent


H.J.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 15:04       ` Arnaud Charlet
@ 2004-03-25 22:35         ` Chris Proctor
  2004-03-25 23:29           ` Laurent GUERBY
  0 siblings, 1 reply; 22+ messages in thread
From: Chris Proctor @ 2004-03-25 22:35 UTC (permalink / raw)
  To: gcc; +Cc: Arnaud Charlet

On Thu, Mar 25, 2004 at 01:43:46PM +0100, Arnaud Charlet wrote:
> > I tried 0.01 but still basicly got the same intermittant failures.
> 
> Please tell us which failures you're seeing, because we're discussing
> in the dark otherwise.
> 
> Arno

I believe from memory the main test I was seeing problems with
was C954025.  This test has delays of 0.5, 1.0 and 2.0 seconds.
When these are multiplied by 0.001 the resultant delays become
much less that the HZ(100) scheduling of a loaded Linux machine.

This test would consistently fail, but would sometimes just hang.
I dont remember any others hanging, but this was a while ago and
I never got any problems after this change.  I did not bother raising
it because I had tested and realized that this only happened when the
machine was loaded (although not really excessively).
H.J. may or may not be seeing the same problem, but it is something
to keep in mind.

If there are tests with delays in the minutes, the supplied constant
would probably be Ok for them.  Maybe we need two constants:
one for short delays, and one for longer ones.

--
Chris Proctor

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 22:35         ` Chris Proctor
@ 2004-03-25 23:29           ` Laurent GUERBY
  2004-03-27  0:11             ` H. J. Lu
  0 siblings, 1 reply; 22+ messages in thread
From: Laurent GUERBY @ 2004-03-25 23:29 UTC (permalink / raw)
  To: Chris Proctor; +Cc: gcc, Arnaud Charlet

On Thu, 2004-03-25 at 21:16, Chris Proctor wrote:
> On Thu, Mar 25, 2004 at 01:43:46PM +0100, Arnaud Charlet wrote:
> > > I tried 0.01 but still basicly got the same intermittant failures.
> > 
> > Please tell us which failures you're seeing, because we're discussing
> > in the dark otherwise.
> > 
> > Arno
> 
> I believe from memory the main test I was seeing problems with
> was C954025.  This test has delays of 0.5, 1.0 and 2.0 seconds.
> When these are multiplied by 0.001 the resultant delays become
> much less that the HZ(100) scheduling of a loaded Linux machine.

Funny I never see this one failing but it tests order of
operations and delays and can deadlock in some cases,eg: 

main: Launch_Control.Enable_Launch_Control;
Launch_Control:Enable_Launch_Control
main:Mission_Control.Do_Launch;
Mission_Control:Launch_Control.Start_Countdown
Launch_Control:Start_Countdown, delay too small, select on null, loop back to top 
Mission_Control:requeue hangs

I guess it's more visible on loaded multiprocessors.

So it's safer to remove all Impdef.One_Second
for this test and document why. Arnaud, do you agree with my
analysis?

Laurent


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25 23:29           ` Laurent GUERBY
@ 2004-03-27  0:11             ` H. J. Lu
  2004-03-27  0:36               ` Laurent GUERBY
  0 siblings, 1 reply; 22+ messages in thread
From: H. J. Lu @ 2004-03-27  0:11 UTC (permalink / raw)
  To: Laurent GUERBY; +Cc: Chris Proctor, gcc, Arnaud Charlet

On Thu, Mar 25, 2004 at 10:01:54PM +0100, Laurent GUERBY wrote:
> On Thu, 2004-03-25 at 21:16, Chris Proctor wrote:
> > On Thu, Mar 25, 2004 at 01:43:46PM +0100, Arnaud Charlet wrote:
> > > > I tried 0.01 but still basicly got the same intermittant failures.
> > > 
> > > Please tell us which failures you're seeing, because we're discussing
> > > in the dark otherwise.
> > > 
> > > Arno
> > 
> > I believe from memory the main test I was seeing problems with
> > was C954025.  This test has delays of 0.5, 1.0 and 2.0 seconds.
> > When these are multiplied by 0.001 the resultant delays become
> > much less that the HZ(100) scheduling of a loaded Linux machine.
> 
> Funny I never see this one failing but it tests order of
> operations and delays and can deadlock in some cases,eg: 
> 
> main: Launch_Control.Enable_Launch_Control;
> Launch_Control:Enable_Launch_Control
> main:Mission_Control.Do_Launch;
> Mission_Control:Launch_Control.Start_Countdown
> Launch_Control:Start_Countdown, delay too small, select on null, loop back to top 
> Mission_Control:requeue hangs
> 
> I guess it's more visible on loaded multiprocessors.
> 
> So it's safer to remove all Impdef.One_Second
> for this test and document why. Arnaud, do you agree with my
> analysis?
> 

I had to kill some of the following tests by hand on a 4-way 1.3Ghz
Itanium 2 machine. 


H.J.
----
FAIL:	c91004b
FAIL:	c940010
FAIL:	c94002g
FAIL:	c94007a
FAIL:	c95022b
FAIL:	c95072a
FAIL:	c95072b
FAIL:	c954016
FAIL:	c954017
FAIL:	c974004
FAIL:	c974009
FAIL:	c9a011a
FAIL:	cb1010a
FAIL:	cb20001
FAIL:	cb20004
FAIL:	cb41002
FAIL:	cb5001a
FAIL:	cb5001b
FAIL:	cb5002a
FAIL:	cd2a83c
FAIL:	cd2a91c
FAIL:	cxg2002
FAIL:	cxg2003
FAIL:	cxg2004
FAIL:	cxg2006
FAIL:	cxg2007
FAIL:	cxg2010
FAIL:	cxg2011
FAIL:	cxg2012
FAIL:	cxg2013
FAIL:	cxg2014
FAIL:	cxg2015
FAIL:	cxg2016
FAIL:	cxg2017
FAIL:	cxg2018
FAIL:	cxg2019
FAIL:	cxg2020
FAIL:	cxg2021

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-27  0:11             ` H. J. Lu
@ 2004-03-27  0:36               ` Laurent GUERBY
  2004-03-27  0:41                 ` H. J. Lu
  0 siblings, 1 reply; 22+ messages in thread
From: Laurent GUERBY @ 2004-03-27  0:36 UTC (permalink / raw)
  To: H. J. Lu; +Cc: Chris Proctor, gcc, Arnaud Charlet

On Fri, 2004-03-26 at 23:12, H. J. Lu wrote:

> I had to kill some of the following tests by hand on a 4-way 1.3Ghz
> Itanium 2 machine. 

It would be interesting to have the two test names you killed.

The port doesn't seem in good shape tasking wise,
may be it would be safer to disable tasking on ia64-linux
until someone has time to look at it.

Laurent

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-27  0:36               ` Laurent GUERBY
@ 2004-03-27  0:41                 ` H. J. Lu
  2004-03-27  0:48                   ` Laurent GUERBY
  0 siblings, 1 reply; 22+ messages in thread
From: H. J. Lu @ 2004-03-27  0:41 UTC (permalink / raw)
  To: Laurent GUERBY; +Cc: Chris Proctor, gcc, Arnaud Charlet

On Fri, Mar 26, 2004 at 11:21:02PM +0100, Laurent GUERBY wrote:
> On Fri, 2004-03-26 at 23:12, H. J. Lu wrote:
> 
> > I had to kill some of the following tests by hand on a 4-way 1.3Ghz
> > Itanium 2 machine. 
> 
> It would be interesting to have the two test names you killed.

I know I had to kill at least the following:

FAIL:   c91004b
FAIL:   c940010
FAIL:   c94002g
FAIL:   c94007a
FAIL:   c95022b
FAIL:   c95072a
FAIL:   c95072b
FAIL:   c954016


H.J.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-27  0:41                 ` H. J. Lu
@ 2004-03-27  0:48                   ` Laurent GUERBY
  2004-03-27 21:37                     ` Arnaud Charlet
  0 siblings, 1 reply; 22+ messages in thread
From: Laurent GUERBY @ 2004-03-27  0:48 UTC (permalink / raw)
  To: H. J. Lu; +Cc: Chris Proctor, gcc, Arnaud Charlet

On Fri, 2004-03-26 at 23:26, H. J. Lu wrote:
> I know I had to kill at least the following:
> 
> FAIL:   c91004b
> FAIL:   c940010
> FAIL:   c94002g
> FAIL:   c94007a
> FAIL:   c95022b
> FAIL:   c95072a
> FAIL:   c95072b
> FAIL:   c954016

Not good. I'd suggest to remove tasking support on ia64-linux,
in gcc/ada/Makefile.in replace LIBGNAT_TARGET_PAIRS as follows:

ifeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),)
  LIBGNAT_TARGET_PAIRS = \
  a-intnam.ads<4lintnam.ads \
  s-inmaop.adb<7sinmaop.adb \
  s-intman.adb<7sintman.adb \
  s-osinte.ads<5iosinte.ads \
  s-osinte.adb<5iosinte.adb \
  s-osprim.adb<7sosprim.adb \
  s-taprop.adb<5itaprop.adb \
  s-tpopsp.adb<5atpopsp.adb \
  s-taspri.ads<5itaspri.ads \
  system.ads<55system.ads

by

a-intnam.ads<4nintnam.ads \
s-inmaop.adb<5ninmaop.adb \
s-intman.adb<5nintman.adb \
s-osinte.ads<5nosinte.ads \
s-osprim.adb<7sosprim.adb \
s-taprop.adb<5ntaprop.adb \
s-taspri.ads<5ntaspri.ads \
system.ads<55system.ads

The ACATS machinery should move all these tests as unsupported.

Arnaud, would it be ok to commit such a patch?

Laurent

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-27  0:48                   ` Laurent GUERBY
@ 2004-03-27 21:37                     ` Arnaud Charlet
  2004-03-28  6:38                       ` Geert Bosch
  2004-03-29 10:30                       ` Laurent GUERBY
  0 siblings, 2 replies; 22+ messages in thread
From: Arnaud Charlet @ 2004-03-27 21:37 UTC (permalink / raw)
  To: Laurent GUERBY; +Cc: H. J. Lu, Chris Proctor, gcc, Arnaud Charlet

> The ACATS machinery should move all these tests as unsupported.
> 
> Arnaud, would it be ok to commit such a patch?

Not without a better understanding of these failures.

Tasking is in good shape on ia64 linux, at least on some configurations
(e.g. monoprocessor machines), so there is no reason to disable it AFAIK.

It looks more like some bug in the pthread library itself (maybe in
the context of SMP), so I don't see any good reason for disabling Ada tasking.

Arno

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-27 21:37                     ` Arnaud Charlet
@ 2004-03-28  6:38                       ` Geert Bosch
  2004-03-29 21:12                         ` H. J. Lu
  2004-03-29 10:30                       ` Laurent GUERBY
  1 sibling, 1 reply; 22+ messages in thread
From: Geert Bosch @ 2004-03-28  6:38 UTC (permalink / raw)
  To: Arnaud Charlet; +Cc: gcc, Laurent GUERBY, Chris Proctor, H. J. Lu


On Mar 27, 2004, at 06:25, Arnaud Charlet wrote:
> Tasking is in good shape on ia64 linux, at least on some configurations
> (e.g. monoprocessor machines), so there is no reason to disable it 
> AFAIK.

> It looks more like some bug in the pthread library itself (maybe in
> the context of SMP), so I don't see any good reason for disabling Ada 
> tasking.

The current situation (running make check requires manual intervention)
clearly is not acceptable for GCC developers. The question is of course
under what condition these failures occur and if more people are running
into this issue.

For now the best workaround for HJ seems to be to list all the 
potentially
failing tests in his gcc/testsuite/ada/acats/norun.txt file.

   -Geert

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-27 21:37                     ` Arnaud Charlet
  2004-03-28  6:38                       ` Geert Bosch
@ 2004-03-29 10:30                       ` Laurent GUERBY
  1 sibling, 0 replies; 22+ messages in thread
From: Laurent GUERBY @ 2004-03-29 10:30 UTC (permalink / raw)
  To: Arnaud Charlet; +Cc: H. J. Lu, Chris Proctor, gcc

On Sat, 2004-03-27 at 12:25, Arnaud Charlet wrote:
> > The ACATS machinery should move all these tests as unsupported.
> > 
> > Arnaud, would it be ok to commit such a patch?
> 
> Not without a better understanding of these failures.

Well I don't have access to ia64-linux so that's your call :)

Laurent

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-28  6:38                       ` Geert Bosch
@ 2004-03-29 21:12                         ` H. J. Lu
  0 siblings, 0 replies; 22+ messages in thread
From: H. J. Lu @ 2004-03-29 21:12 UTC (permalink / raw)
  To: Geert Bosch; +Cc: Arnaud Charlet, gcc, Laurent GUERBY, Chris Proctor

On Sat, Mar 27, 2004 at 04:37:15PM -0500, Geert Bosch wrote:
> 
> On Mar 27, 2004, at 06:25, Arnaud Charlet wrote:
> >Tasking is in good shape on ia64 linux, at least on some configurations
> >(e.g. monoprocessor machines), so there is no reason to disable it 
> >AFAIK.
> 
> >It looks more like some bug in the pthread library itself (maybe in
> >the context of SMP), so I don't see any good reason for disabling Ada 
> >tasking.
> 
> The current situation (running make check requires manual intervention)
> clearly is not acceptable for GCC developers. The question is of course
> under what condition these failures occur and if more people are running
> into this issue.
> 

On my 4way ia64 machine, I saw

(gdb) info thread
* 4 Thread 32771 (LWP 19781)  0x20000000000511c1 in __pthread_sigsuspend ()
   from /lib/libpthread.so.0
  3 Thread 16386 (LWP 19783)  0x20000000000511c1 in __pthread_sigsuspend ()
   from /lib/libpthread.so.0
  2 Thread 32769 (LWP 19782)  0x200000000034eac1 in __clone2 ()
   from /lib/libc.so.6.1
  1 Thread 16384 (LWP 19781)  0x20000000000511c1 in __pthread_sigsuspend ()
   from /lib/libpthread.so.0
(gdb) thread 1
[Switching to thread 1 (Thread 16384 (LWP 19781))]#0  0x20000000000511c1 in
__pthread_sigsuspend () from /lib/libpthread.so.0
(gdb) bt
#0  0x20000000000511c1 in __pthread_sigsuspend () from /lib/libpthread.so.0
#1  0x200000000004ff90 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#2  0x200000000004f3a0 in pthread_create@@GLIBC_2.2 ()
   from /lib/libpthread.so.0
#3  0x4000000000017bf0 in system.task_primitives.operations.create_task (
    t=0x6000000000016910, wrapper=4611686018427733024, stack_size=0,
    priority=15) at s-taprop.adb:878
#4  0x4000000000020b50 in system.tasking.stages.activate_tasks (
    chain_access=0x60000fffffffb8f0) at s-tassta.adb:325
#5  0x4000000000013be0 in _ada_c91004b ()
#6  0x40000000000043e0 in main ()
(gdb) thread 4
[Switching to thread 4 (Thread 32771 (LWP 19781))]#0  0x20000000000511c1 in
__pthread_sigsuspend () from /lib/libpthread.so.0
(gdb) bt
#0  0x20000000000511c1 in __pthread_sigsuspend () from /lib/libpthread.so.0
#1  0x200000000004ff90 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#2  0x200000000004f3a0 in pthread_create@@GLIBC_2.2 ()
   from /lib/libpthread.so.0
#3  0x4000000000017bf0 in system.task_primitives.operations.create_task (
    t=0x6000000000016910, wrapper=4611686018427733024, stack_size=0,
    priority=15) at s-taprop.adb:878
#4  0x4000000000020b50 in system.tasking.stages.activate_tasks (
    chain_access=0x60000fffffffb8f0) at s-tassta.adb:325
#5  0x4000000000013be0 in _ada_c91004b ()
#6  0x40000000000043e0 in main ()
(gdb) thread 3
[Switching to thread 3 (Thread 16386 (LWP 19783))]#0  0x20000000000511c1 in
__pthread_sigsuspend () from /lib/libpthread.so.0
(gdb) bt
#0  0x20000000000511c1 in __pthread_sigsuspend () from /lib/libpthread.so.0
#1  0x200000000004ff90 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#2  0x2000000000054430 in __pthread_alt_lock () from /lib/libpthread.so.0
#3  0x200000000004cd90 in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x4000000000016870 in system.task_primitives.operations.write_lock (
    l=0x60000000000077b0, lF=390) at s-taprop.adb:390
#5  0x4000000000016520 in system.task_primitives.operations.lock_rts ()
    at s-taprop.adb:235
#6  0x40000000000172e0 in system.task_primitives.operations.enter_task (
    self_id=0x6000000000013540) at s-taprop.adb:741
#7  0x4000000000022180 in system.tasking.stages.task_wrapper (
    self_id=0x6000000000013540) at s-tassta.adb:882
#8  0x200000000004c820 in pthread_start_thread_event ()
   from /lib/libpthread.so.0
#9  0x200000000034eb70 in __clone2 () from /lib/libc.so.6.1
#10 0x200000000004ff90 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#11 0x0000000000000000 in ?? ()

It looks like 2 threads are trying to create tasks at the same time.
Later,

(gdb) c
Continuing.
[New Thread 32771 (LWP 19938)]
 
,.,. C91004B ACATS 2.5 04-03-29 10:07:19
---- C91004B TASK IDENTIFIER IN OWN BODY.
 
Program received signal SIGINT, Interrupt.
[Switching to Thread 32771 (LWP 19938)]
0x20000000000511c1 in __pthread_sigsuspend () from /lib/libpthread.so.0
(gdb) info thread
* 5 Thread 32771 (LWP 19938)  0x20000000000511c1 in __pthread_sigsuspend ()
   from /lib/libpthread.so.0
  2 Thread 32769 (LWP 19782)  0x200000000033d131 in poll ()
   from /lib/libc.so.6.1
  1 Thread 16384 (LWP 19781)  0x20000000000511c1 in __pthread_sigsuspend ()
   from /lib/libpthread.so.0
(gdb) t 5
[Switching to thread 5 (Thread 32771 (LWP 19938))]#0  0x20000000000511c1 in
__pthread_sigsuspend () from /lib/libpthread.so.0
(gdb) bt
#0  0x20000000000511c1 in __pthread_sigsuspend () from /lib/libpthread.so.0
#1  0x200000000004ff90 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#2  0x2000000000048930 in pthread_cond_wait@GLIBC_2.2 ()
   from /lib/libpthread.so.0
#3  0x4000000000016a80 in system.task_primitives.operations.sleep (self_id=0x0)
    at s-taprop.adb:480
#4  0x40000000000206b0 in system.tasking.rendezvous.wait_for_call (
    self_id=0x6000000000016910) at s-tasren.adb:1788
#5  0x400000000001d5b0 in system.tasking.rendezvous.accept_call (e=1)
    at s-tasren.adb:244
#6  0x40000000000132c0 in c91004b__tt1B.8 ()
#7  0x4000000000022210 in system.tasking.stages.task_wrapper (
    self_id=0x6000000000016910) at s-tassta.adb:910
#8  0x200000000004c820 in pthread_start_thread_event ()
   from /lib/libpthread.so.0
#9  0x200000000034eb70 in __clone2 () from /lib/libc.so.6.1
#10 0x200000000004ff90 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#11 0x0000000000000000 in ?? ()
(gdb) t 1
[Switching to thread 1 (Thread 16384 (LWP 19781))]#0  0x20000000000511c1 in
__pthread_sigsuspend () from /lib/libpthread.so.0
(gdb) bt
#0  0x20000000000511c1 in __pthread_sigsuspend () from /lib/libpthread.so.0
#1  0x200000000004ff90 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#2  0x2000000000048930 in pthread_cond_wait@GLIBC_2.2 ()
   from /lib/libpthread.so.0
#3  0x4000000000016a80 in system.task_primitives.operations.sleep (self_id=0x0)
    at s-taprop.adb:480
#4  0x4000000000028570 in system.tasking.entry_calls.wait_for_completion (
    entry_call=0x6000000000012cd8) at s-taenca.adb:582
#5  0x400000000001dbf0 in system.tasking.rendezvous.call_synchronous (
    acceptor=0x6000000000013540, e=1, uninterpreted_data=6917546619827108192,
    mode=system__tasking__simple_call) at s-tasren.adb:476
#6  0x400000000001da40 in system.tasking.rendezvous.call_simple (
    acceptor=0x6000000000013540, e=1, uninterpreted_data=6917546619827108192)
    at s-tasren.adb:395
#7  0x4000000000013ce0 in _ada_c91004b ()
#8  0x40000000000043e0 in main ()


Now 2 threads are both waiting for some conditional variable to change,
which will never happen.


H.J.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: How to add timeout to Ada tests on Linux/ia64?
  2004-03-25  2:55 How to add timeout to Ada tests on Linux/ia64? H. J. Lu
  2004-03-25 12:43 ` Arnaud Charlet
  2004-03-25 13:06 ` Chris Proctor
@ 2004-04-21  5:58 ` H. J. Lu
  2 siblings, 0 replies; 22+ messages in thread
From: H. J. Lu @ 2004-04-21  5:58 UTC (permalink / raw)
  To: gcc

On Wed, Mar 24, 2004 at 02:54:04PM -0800, H. J. Lu wrote:
> Some Ada tests in gcc 3.4 keep hanging for me on Linux/ia64. I have to
> kill them by hand. How do I add timeout in Ada tests?
> 
> 

I think I found the problem. $(srcdir)/gthr-gnat.c is missing from
LIB2ADDEH in gcc/config/t-libunwind. Any thread related Ada tests
may fail if libunwind is used.


H.J.

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2004-04-21  5:46 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-03-25  2:55 How to add timeout to Ada tests on Linux/ia64? H. J. Lu
2004-03-25 12:43 ` Arnaud Charlet
2004-03-25 14:23   ` Laurent GUERBY
2004-03-25 17:20     ` H. J. Lu
2004-03-25 13:06 ` Chris Proctor
2004-03-25 13:21   ` Arnaud Charlet
2004-03-25 14:21     ` Laurent GUERBY
2004-03-25 14:24       ` Arnaud Charlet
2004-03-25 14:28         ` Laurent GUERBY
2004-03-25 14:29     ` Chris Proctor
2004-03-25 15:04       ` Arnaud Charlet
2004-03-25 22:35         ` Chris Proctor
2004-03-25 23:29           ` Laurent GUERBY
2004-03-27  0:11             ` H. J. Lu
2004-03-27  0:36               ` Laurent GUERBY
2004-03-27  0:41                 ` H. J. Lu
2004-03-27  0:48                   ` Laurent GUERBY
2004-03-27 21:37                     ` Arnaud Charlet
2004-03-28  6:38                       ` Geert Bosch
2004-03-29 21:12                         ` H. J. Lu
2004-03-29 10:30                       ` Laurent GUERBY
2004-04-21  5:58 ` H. J. Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).