Ken Mays wrote:
> Somehow I think we should be looking at server grade technology in
> order
> to go forwards. This means technology with multiple processors also.
>
> I was thinking :
>
> BladeCenter S Express Model 8886E1U
> $4,499.00
Unfortunately, pursuing a port to POWER is somewhat different from porting to
PowerPC. The two architectures are not precisely the same, though they of
course share the same DNA.
The biggest issue surrounding a port to the POWER4, POWER5 or POWER6 or the PPC
970MP is that they're multi-core CPUs and/or are typically used in
multiprocessor configurations. This poses a notable difficulty in that no
current implementation of Solaris runs on a multi-core or multiprocessor system
with a weakly-ordered memory architecture.
For example, on SPARC, Solaris runs in TSO mode (while Linux runs in RMO.)
Both x86 and amd64 are also pretty strongly ordered.
This means that both the kernel and drivers would need to be vetted pretty
carefully to add synchronization instructions where needed - usually isync,
sync
and eieio or combinations thereof, and lwsync on POWER and POWER-derived 64-bit
PPC chips like the IBM 970 series (the "G5.") Worse, if any areas are missed
they will likely show up only as seemingly random, unreproducible episodes of
memory corruption and/or I/O corruption.
In the interest of learning to crawl before we walk, I strongly recommend we
stick with a single core uniprocessor and one that isn't quite as aggressive
about internally reordering operations as the POWER series is.
(Note also that this isn't just a POWER issue; for example the Freescale
MPC8641D is essentially a dual-core e600, or in other words a dual-core G4. The
issue of synchronization points will also need to be addressed in OpenSolaris
ports targeting other multi-core and/or multiprocessor systems with
weakly-ordered memory architectures such as ARM.)
William Kucharski