Port-macppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Userland instability in NetBSD 6.0.1 MacPPC



>> HOWEVER, I noticed that if I run the exact program with the same
>> input twice, I get different crazy numbers. (!!)
>
>My first inclination would be to suspect flaky hardware.
>
>> This may well be due to some bug in analog where it is referencing
>> some uninitialized data that just happens to be different on every
>> run.
>
>> It occurs to me, though that if single threaded (and analog is old,
>> so I would expect that), even bugs should be deterministic.
>
>True as far as it goes.  But...
>
>> I wonder if the "different answers on different runs" might be caused
>> by some OS behavior where it is not properly zeroing new vm pages, or
>> some other anti-social, but not fatally incorrect behavior.
>
>...this, while perhaps possible, is rather unlikely.  But there is
>something I've seen called address space layout randomization, which
>tries to put the various pieces of the address space at different
>adresses each run.  It's intended, AIUI, to mostly-defeat
>code-injection malware that has fixed addresses and/or offsets wired
>into it.  If NetBSD has anything of the sort (you said 6.0.1, so it's
>not a version I know), this could mean that the trash left on the stack
>from one routine call to the next can differ from run to run.
>
>> I have seen some strange behavior that seems non-reproducable, though
>> it's hard to tell when bringing up a new box and debugging 12 things
>> at once.
>
>So true.
>

I just ran my test case on my other G4, a slower 450 Mhz g4 7400.
I'll call it union. (or "charm 450")

It failed, too.

I include some log snippets to ID the CPUs.

Is there a simple way to switch off the L2 cache for testing
without having to build kernels, which I am not currently set
up to do?

The more I think about this, it has to be some cache-flush thing.  If it
were in the I/O path, it would more likely show up elsewhere in
horrible random errors, and if it were in VM, it would be even flakier.
This analog run is the only computation intensive thing I do,
and cache coherency/flush on context switches would be
consistent with this behavior.

It's just a guess, of course.

-dgl-

mercy:
Feb 16 11:06:42 mercy /netbsd: NetBSD 6.0.1 (GENERIC)
Feb 16 11:06:42 mercy /netbsd: total memory = 1536 MB
Feb 16 11:06:42 mercy /netbsd: oea_startup: failed to allocate DEAD ZONE: 
error=12
Feb 16 11:06:42 mercy /netbsd: avail memory = 1476 MB
Feb 16 11:06:42 mercy /netbsd: timecounter: Timecounters tick every 10.000 msec 
Feb 16 11:06:42 mercy /netbsd: found openpic PIC at 80040000
Feb 16 11:06:42 mercy /netbsd: OpenPIC Version 1.2: Supports 4 CPUs and 64 
interrupt sources. 
Feb 16 11:06:42 mercy /netbsd: bootpath: 
/pci@f2000000/mac-io@17/ata-4@1f000/disk@0:11,/netbsd
Feb 16 11:06:42 mercy /netbsd: mainbus0 (root)
Feb 16 11:06:42 mercy /netbsd: cpu0 at mainbus0: 7455 (Revision 2.1), ID 0 
(primary)
Feb 16 11:06:42 mercy /netbsd: cpu0: HID0 
0x84d0c1bc<EMCP,TBEN,HIGH_BAT_EN,NAP,DPM,ICE,DCE,XBSEN,SGE,BTIC,LRSTK,FOLD,BHT>,
 powersave: 1
Feb 16 11:06:42 mercy /netbsd: cpu0: 866.67 MHz, 256KB L2 cache no parity 
parity enabled
Feb 16 11:06:42 mercy /netbsd: memory0 at mainbus0: len=384
Feb 16 11:06:42 mercy /netbsd: spdmem0 at memory0
Feb 16 11:06:42 mercy /netbsd: spdmem0: SDRAM, no parity or ECC, 512MB, 143MHz 
(PC-133)
Feb 16 11:06:42 mercy /netbsd: spdmem0: 13 rows, 10 cols, 2 banks, 4 
banks/chip, 7

charm:
Feb 19 10:37:06 charm /netbsd: NetBSD 6.0.1 (GENERIC)
Feb 19 10:37:06 charm /netbsd: total memory = 896 MB
Feb 19 10:37:06 charm /netbsd: oea_startup: failed to allocate DEAD ZONE: 
error=12
Feb 19 10:37:06 charm /netbsd: avail memory = 857 MB
Feb 19 10:37:06 charm /netbsd: timecounter: Timecounters tick every 10.000 msec
Feb 19 10:37:06 charm /netbsd: found openpic PIC at 80040000
Feb 19 10:37:06 charm /netbsd: OpenPIC Version 1.2: Supports 4 CPUs and 64 
interrupt sources.
Feb 19 10:37:06 charm /netbsd: bootpath: 
/pci@f2000000/mac-io@17/ata-4@1f000/disk@0:0/netbsd
Feb 19 10:37:06 charm /netbsd: mainbus0 (root)
Feb 19 10:37:06 charm /netbsd: cpu0 at mainbus0: 7450 (Revision 2.0), ID 0 
(primary)
Feb 19 10:37:06 charm /netbsd: cpu0: HID0 
0x8450c09c<EMCP,TBEN,NAP,DPM,ICE,DCE,SGE,LRSTK,FOLD,BHT>, powersave: 1
Feb 19 10:37:06 charm /netbsd: cpu0: 733.34 MHz, 256KB L2 cache no parity 
parity enabled
Feb 19 10:37:06 charm /netbsd: memory0 at mainbus0: len=384
Feb 19 10:37:06 charm /netbsd: spdmem0 at memory0
Feb 19 10:37:06 charm /netbsd: spdmem0: SDRAM, no parity or ECC, 256MB, 133MHz 
(PC-133)
Feb 19 10:37:06 charm /netbsd: spdmem0: 12 rows, 10 cols, 2 banks, 4 
banks/chip, 7.5ns cycle time
Feb 19 10:37:06 charm /netbsd: spdmem0: tAA-tRCD-tRP-tRAS: 3-20-20-45
Feb 19 10:37:06 charm /netbsd: spdmem0: voltage LvTTL (not 5V tolerant), 
refresh time 15.625us (self-refreshin


union: (charm-450)
Feb 19 22:38:36 union /netbsd: NetBSD 6.0.1 (GENERIC)
Feb 19 22:38:36 union /netbsd: total memory = 640 MB
Feb 19 22:38:36 union /netbsd: avail memory = 606 MB
Feb 19 22:38:36 union /netbsd: timecounter: Timecounters tick every 10.000 msec
Feb 19 22:38:36 union /netbsd: found openpic PIC at 80040000
Feb 19 22:38:36 union /netbsd: OpenPIC Version 1.2: Supports 4 CPUs and 64 
interrupt sources.
Feb 19 22:38:36 union /netbsd: bootpath: 
/pci@f2000000/@d/mac-io@7/ata-4@1f000/disk@0:0/netbsd
Feb 19 22:38:36 union /netbsd: mainbus0 (root)
Feb 19 22:38:36 union /netbsd: cpu0 at mainbus0: 7400 (Revision 2.6), ID 0 
(primary)
Feb 19 22:38:36 union /netbsd: cpu0: HID0 
0x8094c0a4<EMCP,DOZE,DPM,EIEC,ICE,DCE,SGE,BTIC,BHT>, powersave: 1
Feb 19 22:38:36 union /netbsd: cpu0: 450.00 MHz, no-parity 1MB WB L2 cache (PB 
SRAM) at 2:1 ratio
Feb 19 22:38:36 union /netbsd: memory0 at mainbus0: len=512
Feb 19 22:38:36 union /netbsd: spdmem0 at memory0
Feb 19 22:38:36 union /netbsd: spdmem0: SDRAM, no parity or ECC, 128MB, 100MHz 
(PC-100)
Feb 19 22:38:36 union /netbsd: spdmem0: 12 rows, 9 cols, 2 banks, 4 banks/chip, 
10.0ns cycle time
Feb 19 22:38:36 union /netbsd: spdmem0: tAA-tRCD-tRP-tRAS: 3-20-20-50


Home | Main Index | Thread Index | Old Index