Date: Fri, 2 Jan 2015 12:41:32 -0600
From: Don Lee <MacPPC2%c.icompute.com@localhost>
To: John Klos <john%ziaspace.com@localhost>
Cc: port-macppc%netbsd.org@localhost
Subject: Re: netbsd-7 on Old World hardware
I did some work on a bug back in Dec of 2013 where I was seeing random arithmetic errors on a large computational job. (analog - analyzing apache logs)
It looked to me at the time like a register save/restore problem in the kernel. I did the "bisect" work, and narrowed it down to a couple of days of NetBSD changes - between 5/1/2011 and 5/3/2011.
Look for subject "Re: Confidence: Chopping between 5.2 and 6.0.1" around March 2013 in the MacPPC NetBSD mail list. I had hit a test case that I could reproduce. As I recall, there was a big MacPPC mod put in around that time that looked like a likely culprit.
There is a fair amount of commentary in the above thread.
There is also a more recent thread with a short test case that simply repeatedly asks for the current time - that fails.
Look for: "Problems with registers save/restore on context switch?" in the email threads in Dec 2013.
If this is a register save/restore context switch bug - lord knows what else could be affected.
-dgl-
On Dec 30, 2014, at 11:18 PM, John Klos <john%ziaspace.com@localhost> wrote:
Hi,
I have NetBSD 7 running on a Power Mac mini G4 and so far it runs well. I just upgraded a Power Mac 9600 from NetBSD 5.2 to NetBSD 7 and I'm seeing problems.
First, while running ntpd with a GPS_NMEA source along with a PPS source, the time changed to January 15th, 2083. I thought it was a fluke, but it happened thrice. For now I'm only using the PPS source in ntp.conf.
Next, I noticed that certain parts of lang/perl5 were failing on the Power Mac 9600 which compiled fine on the Mac mini G4, but they weren't failing reproducibly. The system, by the way, has not crashed in many, many years and gets heavy use, so it's quite unlikely there's a hardware issue.
Remembering that benchmarks/flops showed funny times on mac68k after upgrading to NetBSD 7, I tried that and got results like these:
FLOPS C Program (Double Precision), V2.0 18 Dec 1992
Module Error RunTime MFLOPS
(usec)
1 nan 0.0611 229.0215
2 nan -0.0000 -81454545.4629
3 -5.0000e-01 0.0000 870399999.7237
4 -8.6603e-01 0.0000 349090909.0703
5 -6.9315e-01 0.0000 742400000.0281
6 -2.5000e-01 0.0000 337454545.4346
7 5.0020e+02 0.0000 1535999998.4211
8 inf 0.0000 7680000019.3901
Iterations = 0
NullTime (usec) = 0.0000
MFLOPS(1) = -126780952.3965
MFLOPS(2) = 2486.5105
MFLOPS(3) = 2388.3596
MFLOPS(4) = 597333333.3179
Both the binary from NetBSD 5.2 and the binary made using gcc 4.5.4 in NetBSD 7 have the same kinds of errors, but both binaries run just fine on the Mac mini G4.
Finally, I turned off ntpd and noticed that the time drifts about 17 or 18 seconds per hour. This has nothing to do with powersave (tested it both with and without powersave enabled) and vaguely remember something being mentioned a while back about time drift.
Any ideas about what to check?
Thanks,
John Klos