> During `java -Xshare:dump -XX:-UseCompressedOops`, the location of the Java 
> heap is chosen by the OS. Due to Address Space Layout Randomization, the heap 
> will always start at a different location. This causes the archive for 
> uncompressed oops ($JAVA_HOME/lib/server/classes_nocoops.jsa) to be 
> non-deterministic.
> 
> The fix is to patch the archived object pointers to make it look like the 
> heap starts at a fixed address -- I chose 0x10000000, but the exact value 
> doesn't really matter.
> 
> At runtime, the object pointers will be patched again according to the real 
> location of the heap.
> 
> Tested with tiers 1-5. I am running builds-tier5 several times to test the 
> xxx-cmp-baseline builds.

Ioi Lam has updated the pull request with a new target base due to a merge or a 
rebase. The incremental webrev excludes the unrelated changes brought in by the 
merge/rebase. The pull request contains two additional commits since the last 
revision:

 - Merge branch 'master' of https://github.com/openjdk/jdk into 
8282828-uncompressed-oop-cds-archive-not-determinisic
 - 8282828: CDS uncompressed oops archive is not deterministic

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/8478/files
  - new: https://git.openjdk.java.net/jdk/pull/8478/files/f0261c51..8ddea12f

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=8478&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=8478&range=00-01

  Stats: 15990 lines in 519 files changed: 10708 ins; 2732 del; 2550 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8478.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8478/head:pull/8478

PR: https://git.openjdk.java.net/jdk/pull/8478

Reply via email to