RFR: 8230664: Fix TestInstanceKlassSize for PowerPC

Ziviani github.com+670087+jrziviani at openjdk.java.net
Tue Sep 29 11:22:18 UTC 2020


TestInstanceKlassSize was failing because, for PowerPC, the following code (instanceKlass.cpp) always compiles to
`return false;` bool InstanceKlass::has_stored_fingerprint() const {
#if INCLUDE_AOT
  return should_store_fingerprint() || is_shared();
#else
  return false;
#endif
}
However, in `hasStoredFingerprint()@InstanceKlass.java` the condition `shouldStoreFingerprint() || isShared();` is
always evaluated and may return true (_AFAIK isShared() returns true_). Such condition adds 8 bytes in the
`getSize()@InstanceKlass.java` causing the failure in TestInstanceKlassSize: public long getSize() { // in number of
bytes
  ...
  if (hasStoredFingerprint()) {
    size += 8; // uint64_t
  }
  return alignSize(size);
}
Considering these tests are failing for PowerPC only (_based on ProblemList.txt_), my solution checks if
`hasStoredFingerprint()` is running on a PowerPC platform. I decided to go this way because there is no existing flag
informing whether AOT is included or not and creating a new one just to handle the PowerPC case seems too much.

This patch is an attempt to fix https://bugs.openjdk.java.net/browse/JDK-8230664

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

Commit messages:
 - 8230664: Fix TestInstanceKlassSize for PowerPC

Changes: https://git.openjdk.java.net/jdk/pull/358/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=358&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8230664
  Stats: 8 lines in 3 files changed: 5 ins; 2 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/358.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/358/head:pull/358

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


More information about the serviceability-dev mailing list