[fpc-devel] SMP > 2 core Cache issue with Posix threads

Mark Morgan Lloyd markMLl.fpc-devel at telemetry.co.uk
Fri Jul 1 11:26:58 CEST 2011


Michael Schnell wrote:
> In another topic (now closed) Andrew described that a code similar to 
> HansPeter's example did run correctly on a dual core machine, but 
> produced errors on a machine with more cores.

I've not been reading every message. Definitive URL?

> OTOH if some synchronization ensures that the appropriate code sequences 
> that sets it has been executed, IMHO, Posix compatibility of the 
> infrastructure (compiler, libraries, OS, Hardware) ensures that another 
> thread in fact gets that correct value of that variable (i.e. SMP Cache 
> synchronization after the synchronization is granted).

So the really big question is whether any given computer has a robust 
SMP implementation, or if in actual fact it's some species of NUMA with 
unreliable cache coherency.

It might also be necessary to distinguish between SMP, multicore and 
hyperthreading.

> (It it fails only on Andrew's machine, my suggestion is a hardware 
> problem.)
> 
> Who has a >2 Core machine to test and debug this ?

Biggest x86 system I've got here is a Compaq with 2x Xeons which I think 
are 2x multicore rather than HT. More interestingly I've got a 12-way 
SMP Sun, and they've been in this game for a while. Linux-only in both 
cases.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]



More information about the fpc-devel mailing list