Details
-
Enhancement
-
Resolution: Fixed
-
P5
-
hs17
-
b03
-
sparc
-
solaris_10
-
Verified
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2195070 | 7 | Vladimir Kozlov | P5 | Closed | Fixed | b99 |
JDK-2197872 | 6u23 | Vladimir Kozlov | P5 | Resolved | Fixed | b01 |
JDK-2199772 | 6u22m | Vladimir Kozlov | P5 | Resolved | Fixed | b01 |
JDK-2197578 | 6u21p | Vladimir Kozlov | P5 | Resolved | Fixed | b03 |
Description
Whenever we decide to use Compressed Oops with 64Gb heap AT LEAST next changes should be made to build VM which support it.
Note: more complex changes needed to use a VM option. I don't see benefits on N2 with it so I am putting it on shelf.
src/share/vm/utilities/globalDefinitions.hpp
@@ -288,11 +288,11
// Minimum is max(BytesPerLong, BytesPerDouble, BytesPerOop) / HeapWordSize, so jlong, jdouble and
// reference fields can be naturally aligned.
-const int MinObjAlignment = HeapWordsPerLong;
+const int MinObjAlignment = HeapWordsPerLong * 2; // *2 for 16 bytes alignment
const int MinObjAlignmentInBytes = MinObjAlignment * HeapWordSize;
const int MinObjAlignmentInBytesMask = MinObjAlignmentInBytes - 1;
-const int LogMinObjAlignment = LogHeapWordsPerLong;
+const int LogMinObjAlignment = LogHeapWordsPerLong + 1; // +1 for 16 bytes alignment
const int LogMinObjAlignmentInBytes = LogMinObjAlignment + LogHeapWordSize;
Note: more complex changes needed to use a VM option. I don't see benefits on N2 with it so I am putting it on shelf.
src/share/vm/utilities/globalDefinitions.hpp
@@ -288,11 +288,11
// Minimum is max(BytesPerLong, BytesPerDouble, BytesPerOop) / HeapWordSize, so jlong, jdouble and
// reference fields can be naturally aligned.
-const int MinObjAlignment = HeapWordsPerLong;
+const int MinObjAlignment = HeapWordsPerLong * 2; // *2 for 16 bytes alignment
const int MinObjAlignmentInBytes = MinObjAlignment * HeapWordSize;
const int MinObjAlignmentInBytesMask = MinObjAlignmentInBytes - 1;
-const int LogMinObjAlignment = LogHeapWordsPerLong;
+const int LogMinObjAlignment = LogHeapWordsPerLong + 1; // +1 for 16 bytes alignment
const int LogMinObjAlignmentInBytes = LogMinObjAlignment + LogHeapWordSize;
Attachments
Issue Links
- backported by
-
JDK-2197578 Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
- Resolved
-
JDK-2197872 Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
- Resolved
-
JDK-2199772 Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
- Resolved
-
JDK-2195070 Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
- Closed
- relates to
-
JDK-6957882 nsk/sajdi tests failed with NullPointerException
- Closed
-
JDK-6979458 VM crashes when -XX:ObjectAlignmentInBytes is too big
- Closed
(1 relates to)