Re: Perl 5.8 broken in current

2002-10-16 Thread Alex Zepeda

On Mon, Oct 14, 2002 at 05:00:45PM -0700, David O'Brien wrote:

  gcc's code optimizations are broken, and should be avoided.
 
 Not any more with GCC 3.2, unless you have a test case to prove it broken.

Well you still can't buildworld with -O3 -march=pentiumpro
-fno-strength-reduce.  Looks like it dies somewhere while trying to make
depend for groff.

What was broken before the compiler upgrade was perl (this was indicated
by automake being borked resulting in an inability to build kde).  
Thankfully this is now working.

- alex

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Perl 5.8 broken in current

2002-10-16 Thread Daniel Rock

Kris Kennaway schrieb:

On Wed, Oct 16, 2002 at 02:12:07AM +0200, Daniel Rock wrote:

  

gprof thinks the runtime is only 8 seconds, while in reality it takes 
more than 2 minutes to complete the test. A small excerpt from gprof output



Are you running a kernel with WITNESS enabled?  This can really chew
up kernel CPU time if you're doing a lot of syscalls.

  

No, WITNESS not enabled.

System calls should not be the problem. If I truss the process. Syscalls 
don't seem to be the problem. Most of the syscalls are break() syscalls, 
but no more than 10-20 per second. If I try to reduce the calling 
frequency (ln -sf  /etc/malloc.conf), runtime doesn't change 
significantly

Daniel



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Perl 5.8 broken in current

2002-10-16 Thread David O'Brien

On Wed, Oct 16, 2002 at 01:27:30AM -0700, Alex Zepeda wrote:
 On Mon, Oct 14, 2002 at 05:00:45PM -0700, David O'Brien wrote:
 
   gcc's code optimizations are broken, and should be avoided.
  
  Not any more with GCC 3.2, unless you have a test case to prove it broken.
 
 Well you still can't buildworld with -O3 -march=pentiumpro
 -fno-strength-reduce.  Looks like it dies somewhere while trying to make
 depend for groff.

We have known code bugs in libc (and maybe elsewhere). :-(

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Perl 5.8 broken in current

2002-10-15 Thread Daniel Rock

David O'Brien schrieb:

On Mon, Oct 14, 2002 at 01:44:07PM -0700, Alex Zepeda wrote:
  

So turn off the optimizations?



No in -CURRENT with GCC 3.2, we want to know when -O2 causes a problem.
 
  

gcc's code optimizations are broken, and should be avoided.



Not any more with GCC 3.2, unless you have a test case to prove it broken.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message
  


The errors during make test are only one issue. What bothers me even 
more ist the high runtime of some of the tests (up to several *hours*). 
Finally a make test completed on my machine (perl-5.8 compiled without 
optimizations, which isn't a big issue, see my previous mail showing run 
times of one test):

All tests successful.
u=13.8672  s=5.61719  cu=21700.3  cs=2264.12  scripts=666  tests=68469
36915,89 real 21726,29 user  2278,34 sys

The same tests on Solaris/x86 (processor ~40% faster) only take 12 minutes.


Daniel


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Perl 5.8 broken in current

2002-10-15 Thread Kris Kennaway

On Tue, Oct 15, 2002 at 07:31:28PM +0200, Daniel Rock wrote:

 The errors during make test are only one issue. What bothers me even 
 more ist the high runtime of some of the tests (up to several *hours*). 
 Finally a make test completed on my machine (perl-5.8 compiled without 
 optimizations, which isn't a big issue, see my previous mail showing run 
 times of one test):
 
 All tests successful.
 u=13.8672  s=5.61719  cu=21700.3  cs=2264.12  scripts=666  tests=68469
36915,89 real 21726,29 user  2278,34 sys
 
 The same tests on Solaris/x86 (processor ~40% faster) only take 12 minutes.

It would help if you can do some form of profiling to work out what
exactly is taking longer.

Kris



msg44715/pgp0.pgp
Description: PGP signature


Re: Perl 5.8 broken in current

2002-10-15 Thread Daniel Rock

Kris Kennaway schrieb:

On Tue, Oct 15, 2002 at 07:31:28PM +0200, Daniel Rock wrote:

  

The errors during make test are only one issue. What bothers me even 
more ist the high runtime of some of the tests (up to several *hours*). 
Finally a make test completed on my machine (perl-5.8 compiled without 
optimizations, which isn't a big issue, see my previous mail showing run 
times of one test):

All tests successful.
u=13.8672  s=5.61719  cu=21700.3  cs=2264.12  scripts=666  tests=68469
   36915,89 real 21726,29 user  2278,34 sys

The same tests on Solaris/x86 (processor ~40% faster) only take 12 minutes.



It would help if you can do some form of profiling to work out what
exactly is taking longer.

Kris
  

Ok,

I tried it but the results are very strange.

I recompiled perl with profiling enabled and ran the test t/op/pat.t

gprof thinks the runtime is only 8 seconds, while in reality it takes 
more than 2 minutes to complete the test. A small excerpt from gprof output

FreeBSD:
granularity: each sample hit covers 4 byte(s) for 0.01% of 8.15 seconds

  called/total   parents
index  %timeself descendents  called+selfname   index
  called/total   children
[...]
[2] 92.10.007.50 main [2]
0.004.88   1/1   perl_parse [3]
0.002.01   1/1   perl_destruct [6]
0.000.35   1/1   perl_run [22]
0.000.26   1/1   perl_construct [31]
0.000.00   1/1   __fpsetreg [1807]
0.000.00   1/1   perl_alloc [817]
0.000.00   1/1   perl_free [818]


Solaris:
granularity: each sample hit covers 4 byte(s) for 0.02% of 10.13 seconds

  called/total   parents
index  %timeself descendents  called+selfname   index
  called/total   children

0.005.79   1/1   _start [2]
[1] 57.10.005.79   1 main [1]
0.003.80   1/1   perl_parse [5]
0.001.21   1/1   perl_destruct [8]
0.000.56   1/1   perl_construct [15]
0.000.21   1/1   perl_run [27]
0.000.00   1/1   perl_alloc [600]
0.000.00   1/1   perl_free [610]
0.000.00   1/1   _pthread_atfork [624]
0.000.00   1/1   _signal [2752]
0.000.00   1/1   
pthread_mutex_destroy [943]


Daniel


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Perl 5.8 broken in current

2002-10-15 Thread Kris Kennaway

On Wed, Oct 16, 2002 at 02:12:07AM +0200, Daniel Rock wrote:

 gprof thinks the runtime is only 8 seconds, while in reality it takes 
 more than 2 minutes to complete the test. A small excerpt from gprof output

Are you running a kernel with WITNESS enabled?  This can really chew
up kernel CPU time if you're doing a lot of syscalls.

Kris



msg44743/pgp0.pgp
Description: PGP signature


Re: Perl 5.8 broken in current

2002-10-14 Thread Alex Zepeda

On Mon, Oct 14, 2002 at 10:37:53PM +0200, Daniel Rock wrote:

 If I compile it with optimization enabled make test fails at t/op/pat, 
 test 640. Only with no optimization at all this test succeeded. I tried 
 the following options

So turn off the optimizations?

gcc's code optimizations are broken, and should be avoided.  If you want
to break perl 5.6 you can do so with -O3 -march=pentiumpro (somehow I
suspect -O2 would have the same effect).

Besides, that just goes to show, it's not perl that's broken.. rather it's
the compiler.

- alex

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Perl 5.8 broken in current

2002-10-14 Thread Daniel Rock

Alex Zepeda schrieb:

So turn off the optimizations?

gcc's code optimizations are broken, and should be avoided.  If you want
to break perl 5.6 you can do so with -O3 -march=pentiumpro (somehow I
suspect -O2 would have the same effect).

Besides, that just goes to show, it's not perl that's broken.. rather it's
the compiler.

  

But why don't show the same optimization levels on another intel 
platform (Solaris x86, gcc-3.2 release) no problem?
And what about the incredible runtime, regardless of optimization level 
(t/op/pat.t has a running time of 110s-130s, while the same test on my 
Solaris/x86 box only takes 7 seconds to complete.

Solaris (450 MHz P II):
% timex ./perl t/op/pat.t
[...]
ok 921
ok 922

real7.41
user5.66
sys 0.29


FreeBSD (300 MHz K6-2, unoptimized):
% /usr/bin/time ./perl t/op/pat.t
[...]
ok 921
ok 922
  211,42 real   115,96 user29,67 sys

FreeBSD (-mcpu=pentiumpro -O):
[...]
ok 639
time: command terminated abnormally
  204,05 real   111,23 user31,60 sys
segmentation fault (core dumped)

Especially the high system time worries me (25% of the runtime in the 
kernel)


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Perl 5.8 broken in current

2002-10-14 Thread Alex Zepeda

On Tue, Oct 15, 2002 at 12:03:54AM +0200, Daniel Rock wrote:

 But why don't show the same optimization levels on another intel 
 platform (Solaris x86, gcc-3.2 release) no problem?

Because it's not the same compiler.  -current is not using 3.2.

$gcc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.2.1 [FreeBSD] 20021009 (prerelease)

- alex

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Perl 5.8 broken in current

2002-10-14 Thread David O'Brien

On Mon, Oct 14, 2002 at 01:44:07PM -0700, Alex Zepeda wrote:
 So turn off the optimizations?

No in -CURRENT with GCC 3.2, we want to know when -O2 causes a problem.
 
 gcc's code optimizations are broken, and should be avoided.

Not any more with GCC 3.2, unless you have a test case to prove it broken.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Perl 5.8 broken in current

2002-10-14 Thread David O'Brien

On Mon, Oct 14, 2002 at 03:12:25PM -0700, Alex Zepeda wrote:
 On Tue, Oct 15, 2002 at 12:03:54AM +0200, Daniel Rock wrote:
 
  But why don't show the same optimization levels on another intel 
  platform (Solaris x86, gcc-3.2 release) no problem?
 
 Because it's not the same compiler.  -current is not using 3.2.
 
 $gcc -v
 Using built-in specs.
 Configured with: FreeBSD/i386 system compiler
 Thread model: posix
 gcc version 3.2.1 [FreeBSD] 20021009 (prerelease)

Geez, there aren't _2_ orders of magnitude differences between 3.2.1 and
3.2[.0].  Do you really think the GCC guys would make 3.2.1 suck more
than 3.2?  Please give helpful suggestions, or don't give suggestions.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message