[RFR]: 8186578: Zero fails to build on linux-sparc due to sparc-specific code

John Paul Adrian Glaubitz glaubitz at physik.fu-berlin.de
Sun Aug 27 21:52:24 UTC 2017

On 08/27/2017 11:32 PM, David Holmes wrote:
>> The problem is just how to make the code available outside the cpu/sparc tree.
> I would be looking at how to include ./src/cpu/sparc/vm/memset_with_concurrent_readers_sparc.cpp
> in your build. Probably best to ask for help on build-dev - I'm
> no longer familiar with how that part of the build system operates. :(

No worries. I will come up with a solution, I just haven't looked at it
yet since last week (it's still Sunday here :)).

In any way, we can be confident now that we definitely need the SPARC-
specific implementation even for Zero builds. Not having used it in
the past, might explain some of the sporadic segfaults of Zero on
Linux SPARC that we have observed, especially on newer SPARC CPUs (T5).

Another Debian Developer just posted this earlier today from SPARC T4 Supplement:

Block stores execute differently on SPARC T4 than on prior UltraSPARC processors.
On previous processors, such as UltraSPARC T2, UltraSPARC T2+, and SPARC T3, block stores
fetched the data from memory prior to updating the line with the store data. On SPARC T4,
the processor first establishes the line in the L2 cache and zeroes the data, prior to
updating the line with the store source data. The block store is helperized into 8 individual
block init stores. The first helper establishes the line in the L2 cache, zeroes the line out,
then updates the first 8 bytes of the line with the first 8 bytes of the store source
data. The remaining seven helpers collectively update the remaining 56 bytes with the
remaining 56 bytes of store source data. As a result, it is possible for another process to
see the old data, the new data, or a value of zero while the block store is being executed.

And since we currently don't use the SPARC-specific implementation on sparc64,
this might explain the crashes on SPARC-T5.


 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz at debian.org
`. `'   Freie Universitaet Berlin - glaubitz at physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

More information about the hotspot-dev mailing list