[comp.unix.questions] System turns into pig after 66040 installation on HP-UX

FLYNN%EVALUN11.BITNET@cunyvm.cuny.edu (Mark F. Flynn) (05/08/91)

We're running HP-UX 7.05 on an Apollo 400t, and have just installed the
new and wonderful 68040 processor. What we have noticed is that certain
jobs spend from 50% to 90% of their time doing system calls, as opposed
to user time. This is reported both by "time" and a command we have
here called "monitor". I havn't figured out what sort of code actuall
produces this yet. So far, we have only seen it on Fortran code, but
this may just be that we havn't run the right (or wrong) C program yet.
Optimization levels have no signifigant effect. Changing the type
of cacheing similar does nothing.

The HP people here havn't a clue. Has anyone experienced a similar problem?
Any suggestions? Thanks in advance.

Mark Flynn
FLYNN@EVALUN11.(EARN BITNET)

Departamto de Fisica Atomica y Nuclear
Universidad de Valencia
Spain

dold@mitisft.Convergent.COM (Clarence Dold) (05/09/91)

in article <26810@adm.brl.mil>, FLYNN%EVALUN11.BITNET@cunyvm.cuny.edu (Mark F. Flynn) says:

> new and wonderful 68040 processor. What we have noticed is that certain
> jobs spend from 50% to 90% of their time doing system calls, as opposed

Are the programs running slower, or you just curious about the measurement?
The 68040 appears substantially faster than the 68020 in our systems.  I
wonder what measurements you are actually making.

There are some design considerations with regards the cache that
theoretically affect any 68000 CPU, but only become obvious with the '040.
-- 
---
Clarence A Dold - dold@tsmiti.Convergent.COM
               ...pyramid!ctnews!tsmiti!dold

cdl@chiton.ucsd.edu (Carl Lowenstein) (05/09/91)

In article <26810@adm.brl.mil> FLYNN%EVALUN11.BITNET@cunyvm.cuny.edu (Mark F. Flynn) writes:
>We're running HP-UX 7.05 on an Apollo 400t, and have just installed the
>new and wonderful 68040 processor. What we have noticed is that certain
>jobs spend from 50% to 90% of their time doing system calls, as opposed
>to user time.
>So far, we have only seen it on Fortran code
>The HP people here havn't a clue.

Looks to me like you have run into the 68040 floating-point problem, just
like us people with NeXT computers did a few months ago.

The 68040 does not have the full panoply of floating-point instructions
that the 68882 floating-point unit does.  (e.g. no transcendentals)
Thus many of the FP instructions in your Fortran code have become
"unimplemented instructions" and trap to the operating system, where
they have to be suitably interpreted and dispatched.

The long-term solution is to recompile the programs and link them with
an appropriate math library that does not use the 68882 instructions which
are not present in the 68040.

-- 
        carl lowenstein         marine physical lab     u.c. san diego
        {decvax|ucbvax} !ucsd!mpl!cdl                 cdl@mpl.ucsd.edu
                                                  clowenstein@ucsd.edu

tim@proton.amd.com (Tim Olson) (05/10/91)

In article <26810@adm.brl.mil> FLYNN%EVALUN11.BITNET@cunyvm.cuny.edu (Mark F. Flynn) writes:
| We're running HP-UX 7.05 on an Apollo 400t, and have just installed the
| new and wonderful 68040 processor. What we have noticed is that certain
| jobs spend from 50% to 90% of their time doing system calls, as opposed
| to user time. This is reported both by "time" and a command we have
| here called "monitor". I havn't figured out what sort of code actuall
| produces this yet. So far, we have only seen it on Fortran code, but
| this may just be that we havn't run the right (or wrong) C program yet.
| Optimization levels have no signifigant effect. Changing the type
| of cacheing similar does nothing.
| 
| The HP people here havn't a clue. Has anyone experienced a similar problem?
| Any suggestions? Thanks in advance.

Is the code that is running an old binary that used to run on a
previous 680{20,30}/68882 system?  If so, there may be floating-point
coprocessor instructions for trancendentals (sin, cos, etc.) in the
code.  The 68040 does not implement these instructions, but rather
causes a trap.  The system may be performing emulation of these
instructions in the kernel.

If this is the case, you might try recompiling the programs -- they
would probably use user-mode library routines for trancendentals on
the 68040 which would be much faster.


--
	-- Tim Olson
	Advanced Micro Devices
	(tim@amd.com)