apparent problem on linux/s390

Started by Andrew Dunstanabout 21 years ago10 messages
#1Andrew Dunstan
andrew@dunslane.net

headsup courtesy of buildfarm.

problems apparently with NaNs, infinities and negative zeros.

see:
http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=fantail&dt=2004-12-06%2011:05:24

cheers

#2Nicolai Tufar
ntufar@gmail.com
In reply to: Andrew Dunstan (#1)
Re: apparent problem on linux/s390

Hello,

On Mon, 06 Dec 2004 19:15:23 -0500, Andrew Dunstan <andrew@dunslane.net> wrote:

problems apparently with NaNs, infinities and negative zeros.

I am the owner of this baby. It is not an actual mainframe,
it is Hercules emulator running on AthlonXP 2500+ producing
20-25 MIPS of pure mainframe horsepower! On bootup Linux
reports 130 BogoMIPS and OS/390 reports 40 MIPS. We all
know that mainframe MIPS != mini MIPS. Anyways, a full
compile of PostgreSQL source takes about 300 minutes.
I run it overnight.

Hercules is a tested and proved emulator but I have a vague doubt
that it's IEEE FPU emulation may be slightly different from the
real iron's one. Are there test suites to check if a linux's
math functions confirm to the standards. I may need to run one
of them first.

Also if the is something to do with the code I am more than willing
to help. Seems like nobody else has a mainframe handy for testing.
I will do what I can but bear in mind the compile time. In case anyone
wants to try it at home I will help to set it up, it is really easy once it
is up and running it is the same old Linux to you.

As for urgency of bugfixes for S390 platform I am not aware of
anyone running PostgreSQL on IFL (integrated facility for Linux).
And I am not aware of anyone who would even consider this.
Mainframe users are all so scared by IBM FUD.

Nevertheless running PostgreSQL in iron is an important sales pitch
for me and Devrim. Imagine: "Of course it runs on mainframe" or
"Save $2,573,000.00 in monthly software licence fees, use PostgreSQL!".

see:
http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=fantail&amp;dt=2004-12-06%2011:05:24

Meanwhile another fresh build completed with absolutely the same result:

http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=fantail&amp;dt=2004-12-06%2023:04:43

Best regards,
Nicolai Tufar

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Nicolai Tufar (#2)
Re: apparent problem on linux/s390

Nicolai Tufar said:

Hello,

On Mon, 06 Dec 2004 19:15:23 -0500, Andrew Dunstan
<andrew@dunslane.net> wrote:

problems apparently with NaNs, infinities and negative zeros.

I am the owner of this baby. It is not an actual mainframe,
it is Hercules emulator running on AthlonXP 2500+ producing
20-25 MIPS of pure mainframe horsepower! On bootup Linux
reports 130 BogoMIPS and OS/390 reports 40 MIPS.

...

Hercules is a tested and proved emulator but I have a vague doubt
that it's IEEE FPU emulation may be slightly different from the
real iron's one.

Maybe we should mark the buildfarm member as "s390 emulator" ?

Meanwhile, if anyone knows of real big iron that could join the buildfarm
that would also be good.

cheers

andrew

#4Nicolai Tufar
ntufar@gmail.com
In reply to: Andrew Dunstan (#3)
Re: apparent problem on linux/s390

On Tue, 7 Dec 2004 06:38:25 -0600 (CST), Andrew Dunstan
<andrew@dunslane.net> wrote:

Maybe we should mark the buildfarm member as "s390 emulator" ?

It could be. But we'd rather use the full specification,
"Hercules 2.37, ESAME S390 architecture, 31 bit mode, running Debian
Linux Woody"
or something like that. Don't quote it now though, I do not remember what
was the version Hercules I used. But in my opinion what runs on Hercules
runs on Mainframe too, we can safely claim that we compiled and tested
on a mainframe.

Meanwhile, if anyone knows of real big iron that could join the buildfarm
that would also be good.

It will be great. There should be some universities that still use mainframe
and some of them even installed Linux. Compiling PostgreSQL is extremely
resource hungry process. I doubt a business will lend its mainframe for
such a purpose. Also the used to be P390 - personal mainframes machines
produced by IBM a decade ago. They still can be bought on eBay for
something like $5,000. They can run Linux too.

Regards,
Nicolai Tufar

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#3)
Re: apparent problem on linux/s390

"Andrew Dunstan" <andrew@dunslane.net> writes:

Hercules is a tested and proved emulator but I have a vague doubt
that it's IEEE FPU emulation may be slightly different from the
real iron's one.

Maybe we should mark the buildfarm member as "s390 emulator" ?

Meanwhile, if anyone knows of real big iron that could join the buildfarm
that would also be good.

I can't put it in the buildfarm ;-) but I have access to real s390
hardware inside Red Hat. I'll try to run a test build and see whether
the regression tests pass.

I would expect that s390 floating point is not even remotely
IEEE-compliant; they'd have stuck with the S/360 behavior which predates
the IEEE spec by probably 20 years. Whether it's worth generating
variant regression files for this arch, I don't know.

regards, tom lane

#6Horak Daniel
horak@sitmp.cz
In reply to: Tom Lane (#5)
Re: apparent problem on linux/s390

Maybe we should mark the buildfarm member as "s390 emulator" ?

It could be. But we'd rather use the full specification,
"Hercules 2.37, ESAME S390 architecture, 31 bit mode, running Debian
Linux Woody"

Full support for IEEE float number instructions was added into Hercules
during last weeks of november. So you could try to recompile the last
Hercules sources from CVS.

Dan

#7Horak Daniel
horak@sitmp.cz
In reply to: Horak Daniel (#6)
Re: apparent problem on linux/s390

Meanwhile, if anyone knows of real big iron that could join

the buildfarm

that would also be good.

I can't put it in the buildfarm ;-) but I have access to real s390
hardware inside Red Hat. I'll try to run a test build and see whether
the regression tests pass.

I would expect that s390 floating point is not even remotely
IEEE-compliant; they'd have stuck with the S/360 behavior
which predates
the IEEE spec by probably 20 years. Whether it's worth generating
variant regression files for this arch, I don't know.

I think that IEEE float numbers are available on S390 G5 and newer
machines.

Dan

#8Steve Atkins
steve@blighty.com
In reply to: Nicolai Tufar (#2)
Re: apparent problem on linux/s390

On Tue, Dec 07, 2004 at 10:37:36AM +0200, Nicolai Tufar wrote:

On Mon, 06 Dec 2004 19:15:23 -0500, Andrew Dunstan <andrew@dunslane.net> wrote:

problems apparently with NaNs, infinities and negative zeros.

Sure smells more like an IEEE issue than a postgresql issue (built for
IBM FP rather than IEEE? Dodgy bugs in the emulator?).

I am the owner of this baby. It is not an actual mainframe,
it is Hercules emulator running on AthlonXP 2500+ producing
20-25 MIPS of pure mainframe horsepower! On bootup Linux
reports 130 BogoMIPS and OS/390 reports 40 MIPS. We all
know that mainframe MIPS != mini MIPS. Anyways, a full
compile of PostgreSQL source takes about 300 minutes.
I run it overnight.

Hercules is a tested and proved emulator but I have a vague doubt
that it's IEEE FPU emulation may be slightly different from the
real iron's one. Are there test suites to check if a linux's
math functions confirm to the standards. I may need to run one
of them first.

IIRC older S390s don't do IEEE FP at all, and it's done via traps to
the OS. Are you emulating the S390 IEEE FP hardware option or are you
emulating non-IEEE hardware, with IEEE fixup in OS390?

Paranoia by Dr Kahan is the classic IEEE compliance tester
<http://www.netlib.org/paranoia/&gt; but I've also had a lot of
success with the softlib based tester at
<http://www.jhauser.us/arithmetic/TestFloat.html&gt;.

Cheers,
Steve

#9Tom Lane
tgl@sss.pgh.pa.us
In reply to: Nicolai Tufar (#2)
Re: apparent problem on linux/s390

Nicolai Tufar <ntufar@gmail.com> writes:

Hercules is a tested and proved emulator but I have a vague doubt
that it's IEEE FPU emulation may be slightly different from the
real iron's one.

FWIW, I get clean regression test passes on a real z900 at Red Hat,
in both s390 and s390x (32- and 64-bit) modes. I'm not sure what that
means --- it could be that Red Hat Linux doesn't use the hardware
floating point, or it could be that their version of glibc knows how to
deal with corner cases like NaNs on this hardware. Or it could be that
Hercules is broken.

regards, tom lane

#10Nicolai Tufar
ntufar@gmail.com
In reply to: Tom Lane (#9)
Re: apparent problem on linux/s390

On Tue, 07 Dec 2004 13:51:36 -0500, Tom Lane <tgl@sss.pgh.pa.us> wrote:

FWIW, I get clean regression test passes on a real z900 at Red Hat,
in both s390 and s390x (32- and 64-bit) modes. I'm not sure what that
means --- it could be that Red Hat Linux doesn't use the hardware
floating point, or it could be that their version of glibc knows how to
deal with corner cases like NaNs on this hardware. Or it could be that
Hercules is broken.

Too bad :( I had great confidence in Hercules emulator.

This is from official Hercules FAQ:
``The following standard feature has been partially implemented:

* Binary Floating-Point instructions ''

I am playing with "-msoft-float" gcc option which
disables hawdware floating-piont instructions and
uses glibc's ones instead but I get the following error:

/tmp/ccOWrBZJ.o: In function `main':
/tmp/ccOWrBZJ.o(.text+0x40): undefined reference to `__extendsfdf2'
collect2: ld returned 1 exit status

Doeas somebody know in what library
`__extendsfdf2' is?

Thanks in advance,
Nicolai