--- old/src/share/vm/oops/markOop.hpp 2015-02-11 16:21:51.471227495 -0500 +++ new/src/share/vm/oops/markOop.hpp 2015-02-11 16:21:51.351220675 -0500 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,22 +36,22 @@ // // 32 bits: // -------- -// hash:25 ------------>| age:4 biased_lock:1 lock:2 (normal object) -// JavaThread*:23 epoch:2 age:4 biased_lock:1 lock:2 (biased object) +// hash:24 ------------>| age:5 biased_lock:1 lock:2 (normal object) +// JavaThread*:22 epoch:2 age:5 biased_lock:1 lock:2 (biased object) // size:32 ------------------------------------------>| (CMS free block) // PromotedObject*:29 ---------->| promo_bits:3 ----->| (CMS promoted object) // // 64 bits: // -------- -// unused:25 hash:31 -->| unused:1 age:4 biased_lock:1 lock:2 (normal object) -// JavaThread*:54 epoch:2 unused:1 age:4 biased_lock:1 lock:2 (biased object) +// unused:24 hash:31 -->| unused:1 age:5 biased_lock:1 lock:2 (normal object) +// JavaThread*:53 epoch:2 unused:1 age:5 biased_lock:1 lock:2 (biased object) // PromotedObject*:61 --------------------->| promo_bits:3 ----->| (CMS promoted object) // size:64 ----------------------------------------------------->| (CMS free block) // -// unused:25 hash:31 -->| cms_free:1 age:4 biased_lock:1 lock:2 (COOPs && normal object) -// JavaThread*:54 epoch:2 cms_free:1 age:4 biased_lock:1 lock:2 (COOPs && biased object) -// narrowOop:32 unused:24 cms_free:1 unused:4 promo_bits:3 ----->| (COOPs && CMS promoted object) -// unused:21 size:35 -->| cms_free:1 unused:7 ------------------>| (COOPs && CMS free block) +// unused:24 hash:31 -->| cms_free:1 age:5 biased_lock:1 lock:2 (COOPs && normal object) +// JavaThread*:53 epoch:2 cms_free:1 age:5 biased_lock:1 lock:2 (COOPs && biased object) +// narrowOop:32 unused:23 cms_free:1 unused:5 promo_bits:3 ----->| (COOPs && CMS promoted object) +// unused:20 size:35 -->| cms_free:1 unused:8 ------------------>| (COOPs && CMS free block) // // - hash contains the identity hash value: largest value is // 31 bits, see os::random(). Also, 64-bit vm's require @@ -80,7 +80,7 @@ // significant fraction of the eden semispaces and were not // promoted promptly, causing an increase in the amount of copying // performed. The runtime system aligns all JavaThread* pointers to -// a very large value (currently 128 bytes (32bVM) or 256 bytes (64bVM)) +// a very large value (currently 1024 bytes (32bVM) or 2048 bytes (64bVM)) // to make room for the age bits & the epoch bits (used in support of // biased locking), and for the CMS "freeness" bit in the 64bVM (+COOPs). // @@ -108,7 +108,7 @@ public: // Constants - enum { age_bits = 4, + enum { age_bits = 5, lock_bits = 2, biased_lock_bits = 1, max_hash_bits = BitsPerWord - age_bits - lock_bits - biased_lock_bits, @@ -145,7 +145,7 @@ }; // Alignment of JavaThread pointers encoded in object header required by biased locking - enum { biased_lock_alignment = 2 << (epoch_shift + epoch_bits) + enum { biased_lock_alignment = 1 << (epoch_shift + epoch_bits) }; #ifdef _WIN64 --- old/test/gc/arguments/TestInitialTenuringThreshold.java 2015-02-11 16:21:52.115264098 -0500 +++ new/test/gc/arguments/TestInitialTenuringThreshold.java 2015-02-11 16:21:51.995257277 -0500 @@ -69,7 +69,7 @@ runWithThresholds(9, 8, true); runWithThresholds(-1, 8, true); runWithThresholds(8, -1, true); - runWithThresholds(16, 8, true); - runWithThresholds(8, 17, true); + runWithThresholds(32, 8, true); + runWithThresholds(8, 33, true); } } \ No newline at end of file --- old/test/gc/arguments/TestObjectTenuringFlags.java 2015-02-11 16:21:52.731299109 -0500 +++ new/test/gc/arguments/TestObjectTenuringFlags.java 2015-02-11 16:21:52.619292743 -0500 @@ -48,7 +48,7 @@ runTenuringFlagsConsistencyTest( new String[]{"-XX:+NeverTenure"}, false /* shouldFail */, - new ExpectedTenuringFlags(false /* alwaysTenure */, true /* neverTenure */, 7, 16)); + new ExpectedTenuringFlags(false /* alwaysTenure */, true /* neverTenure */, 7, 32)); runTenuringFlagsConsistencyTest( new String[]{"-XX:+AlwaysTenure"}, @@ -71,14 +71,14 @@ new ExpectedTenuringFlags(false /* alwaysTenure */, false /* neverTenure */, 7, 10)); runTenuringFlagsConsistencyTest( - new String[]{"-XX:MaxTenuringThreshold=15"}, + new String[]{"-XX:MaxTenuringThreshold=31"}, false /* shouldFail */, - new ExpectedTenuringFlags(false /* alwaysTenure */, false /* neverTenure */, 7, 15)); + new ExpectedTenuringFlags(false /* alwaysTenure */, false /* neverTenure */, 7, 31)); runTenuringFlagsConsistencyTest( - new String[]{"-XX:MaxTenuringThreshold=16"}, + new String[]{"-XX:MaxTenuringThreshold=32"}, false /* shouldFail */, - new ExpectedTenuringFlags(false /* alwaysTenure */, false /* neverTenure */, 7, 16)); + new ExpectedTenuringFlags(false /* alwaysTenure */, false /* neverTenure */, 7, 32)); runTenuringFlagsConsistencyTest( new String[]{"-XX:InitialTenuringThreshold=0"}, @@ -104,7 +104,7 @@ runTenuringFlagsConsistencyTest( new String[]{"-XX:+AlwaysTenure", "-XX:+NeverTenure"}, false /* shouldFail */, - new ExpectedTenuringFlags(false /* alwaysTenure */, true /* neverTenure */, 7, 16)); + new ExpectedTenuringFlags(false /* alwaysTenure */, true /* neverTenure */, 7, 32)); runTenuringFlagsConsistencyTest( new String[]{"-XX:+NeverTenure", "-XX:+AlwaysTenure"}, @@ -112,19 +112,19 @@ new ExpectedTenuringFlags(true /* alwaysTenure */, false /* neverTenure */, 0, 0)); runTenuringFlagsConsistencyTest( - new String[]{"-XX:MaxTenuringThreshold=16", "-XX:+AlwaysTenure"}, + new String[]{"-XX:MaxTenuringThreshold=32", "-XX:+AlwaysTenure"}, false /* shouldFail */, new ExpectedTenuringFlags(true /* alwaysTenure */, false /* neverTenure */, 0, 0)); runTenuringFlagsConsistencyTest( - new String[]{"-XX:+AlwaysTenure", "-XX:MaxTenuringThreshold=16"}, + new String[]{"-XX:+AlwaysTenure", "-XX:MaxTenuringThreshold=32"}, false /* shouldFail */, - new ExpectedTenuringFlags(false /* alwaysTenure */, false /* neverTenure */, 7, 16)); + new ExpectedTenuringFlags(false /* alwaysTenure */, false /* neverTenure */, 7, 32)); runTenuringFlagsConsistencyTest( new String[]{"-XX:MaxTenuringThreshold=0", "-XX:+NeverTenure"}, false /* shouldFail */, - new ExpectedTenuringFlags(false /* alwaysTenure */, true /* neverTenure */, 7, 16)); + new ExpectedTenuringFlags(false /* alwaysTenure */, true /* neverTenure */, 7, 32)); runTenuringFlagsConsistencyTest( new String[]{"-XX:+NeverTenure", "-XX:MaxTenuringThreshold=0"}, @@ -133,17 +133,17 @@ // Illegal cases runTenuringFlagsConsistencyTest( - new String[]{"-XX:MaxTenuringThreshold=17"}, + new String[]{"-XX:MaxTenuringThreshold=33"}, true /* shouldFail */, new ExpectedTenuringFlags()); runTenuringFlagsConsistencyTest( - new String[]{"-XX:InitialTenuringThreshold=16"}, + new String[]{"-XX:InitialTenuringThreshold=32"}, true /* shouldFail */, new ExpectedTenuringFlags()); runTenuringFlagsConsistencyTest( - new String[]{"-XX:InitialTenuringThreshold=17"}, + new String[]{"-XX:InitialTenuringThreshold=33"}, true /* shouldFail */, new ExpectedTenuringFlags()); } --- old/test/gc/g1/TestStringDeduplicationTools.java 2015-02-11 16:21:53.443339577 -0500 +++ new/test/gc/g1/TestStringDeduplicationTools.java 2015-02-11 16:21:53.327332984 -0500 @@ -321,7 +321,7 @@ private static final int LargeNumberOfStrings = 10000; private static final int SmallNumberOfStrings = 10; - private static final int MaxAgeThreshold = 15; + private static final int MaxAgeThreshold = 31; private static final int DefaultAgeThreshold = 3; private static final int MinAgeThreshold = 1;