diff --git a/FromCardCache-default-card-index-can-cause.patch b/FromCardCache-default-card-index-can-cause.patch deleted file mode 100644 index aa23d291e2b5f01f060c522e557d42b65f57d8b1..0000000000000000000000000000000000000000 --- a/FromCardCache-default-card-index-can-cause.patch +++ /dev/null @@ -1,277 +0,0 @@ -From 3cdfc055dbaae92f295ac0c3ae52d33e1650e8c1 Mon Sep 17 00:00:00 2001 -Date: Wed, 19 Jun 2019 09:30:39 +0000 -Subject: [PATCH] 8196485: FromCardCache default card index can cause crashes - -Summary: FromCardCache default card index can cause crashes -LLT: hotspot/test/gc/g1/TestFromCardCacheIndex.java -Bug url: https://bugs.openjdk.java.net/browse/JDK-8196485 ---- - .../gc_implementation/g1/heapRegionRemSet.cpp | 36 +++--- - .../gc_implementation/g1/heapRegionRemSet.hpp | 17 +-- - .../test/gc/g1/TestFromCardCacheIndex.java | 120 ++++++++++++++++++ - 3 files changed, 146 insertions(+), 27 deletions(-) - create mode 100644 hotspot/test/gc/g1/TestFromCardCacheIndex.java - -diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp -index 437636281b..ad8a3562e8 100644 ---- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp -+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp -@@ -102,17 +102,8 @@ protected: - // If the test below fails, then this table was reused concurrently - // with this operation. This is OK, since the old table was coarsened, - // and adding a bit to the new table is never incorrect. -- // If the table used to belong to a continues humongous region and is -- // now reused for the corresponding start humongous region, we need to -- // make sure that we detect this. Thus, we call is_in_reserved_raw() -- // instead of just is_in_reserved() here. - if (loc_hr->is_in_reserved_raw(from)) { -- size_t hw_offset = pointer_delta((HeapWord*)from, loc_hr->bottom()); -- CardIdx_t from_card = (CardIdx_t) -- hw_offset >> (CardTableModRefBS::card_shift - LogHeapWordSize); -- -- assert(0 <= from_card && (size_t)from_card < HeapRegion::CardsPerRegion, -- "Must be in range."); -+ CardIdx_t from_card = OtherRegionsTable::card_within_region(from, loc_hr); - add_card_work(from_card, par); - } - } -@@ -331,6 +322,12 @@ void OtherRegionsTable::link_to_all(PerRegionTable* prt) { - "just checking"); - } - -+CardIdx_t OtherRegionsTable::card_within_region(OopOrNarrowOopStar within_region, HeapRegion* hr) { -+ assert(hr->is_in_reserved(within_region),"should be"); -+ CardIdx_t result = (CardIdx_t)(pointer_delta((HeapWord*)within_region, hr->bottom()) >> (CardTableModRefBS::card_shift - LogHeapWordSize)); -+ return result; -+} -+ - void OtherRegionsTable::unlink_from_all(PerRegionTable* prt) { - if (prt->prev() != NULL) { - assert(_first_all_fine_prts != prt, "just checking"); -@@ -364,18 +361,17 @@ void OtherRegionsTable::unlink_from_all(PerRegionTable* prt) { - "just checking"); - } - --int** FromCardCache::_cache = NULL; --uint FromCardCache::_max_regions = 0; --size_t FromCardCache::_static_mem_size = 0; -+uintptr_t** FromCardCache::_cache = NULL; -+uint FromCardCache::_max_regions = 0; -+size_t FromCardCache::_static_mem_size = 0; - - void FromCardCache::initialize(uint n_par_rs, uint max_num_regions) { - guarantee(_cache == NULL, "Should not call this multiple times"); - - _max_regions = max_num_regions; -- _cache = Padded2DArray::create_unfreeable(n_par_rs, -- _max_regions, -- &_static_mem_size); -- -+ _cache = Padded2DArray::create_unfreeable(n_par_rs, -+ _max_regions, -+ &_static_mem_size); - invalidate(0, _max_regions); - } - -@@ -396,7 +392,8 @@ void FromCardCache::invalidate(uint start_idx, size_t new_num_regions) { - void FromCardCache::print(outputStream* out) { - for (uint i = 0; i < HeapRegionRemSet::num_par_rem_sets(); i++) { - for (uint j = 0; j < _max_regions; j++) { -- out->print_cr("_from_card_cache[" UINT32_FORMAT "][" UINT32_FORMAT "] = " INT32_FORMAT ".", -+ out->print_cr("_from_card_cache[%u][%u] = " SIZE_FORMAT ".", -+ - i, j, at(i, j)); - } - } -@@ -433,7 +430,8 @@ void OtherRegionsTable::add_reference(OopOrNarrowOopStar from, int tid) { - : (void *)oopDesc::load_decode_heap_oop((oop*)from)); - } - -- int from_card = (int)(uintptr_t(from) >> CardTableModRefBS::card_shift); -+ uintptr_t from_card = uintptr_t(from) >> CardTableModRefBS::card_shift; -+ - - if (G1TraceHeapRegionRememberedSet) { - gclog_or_tty->print_cr("Table for [" PTR_FORMAT "...): card %d (cache = " INT32_FORMAT ")", -diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp -index 1646e8cb98..77751b4a98 100644 ---- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp -+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp -@@ -51,21 +51,19 @@ class FromCardCache : public AllStatic { - private: - // Array of card indices. Indexed by thread X and heap region to minimize - // thread contention. -- static int** _cache; -+ static uintptr_t** _cache; - static uint _max_regions; - static size_t _static_mem_size; - - public: -- enum { -- InvalidCard = -1 // Card value of an invalid card, i.e. a card index not otherwise used. -- }; -+ static const uintptr_t InvalidCard = UINTPTR_MAX; - - static void clear(uint region_idx); - - // Returns true if the given card is in the cache at the given location, or - // replaces the card at that location and returns false. -- static bool contains_or_replace(uint worker_id, uint region_idx, int card) { -- int card_in_cache = at(worker_id, region_idx); -+ static bool contains_or_replace(uint worker_id, uint region_idx, uintptr_t card) { -+ uintptr_t card_in_cache = at(worker_id, region_idx); - if (card_in_cache == card) { - return true; - } else { -@@ -74,11 +72,11 @@ class FromCardCache : public AllStatic { - } - } - -- static int at(uint worker_id, uint region_idx) { -+ static uintptr_t at(uint worker_id, uint region_idx) { - return _cache[worker_id][region_idx]; - } - -- static void set(uint worker_id, uint region_idx, int val) { -+ static void set(uint worker_id, uint region_idx, uintptr_t val) { - _cache[worker_id][region_idx] = val; - } - -@@ -177,6 +175,9 @@ public: - - HeapRegion* hr() const { return _hr; } - -+ // Returns the card index of the given within_region pointer relative to the bottom ————————————————————heapRegionRemSet.hpp:312 OtherRegionsTable -+ // of the given heap region. -+ static CardIdx_t card_within_region(OopOrNarrowOopStar within_region, HeapRegion* hr); - // For now. Could "expand" some tables in the future, so that this made - // sense. - void add_reference(OopOrNarrowOopStar from, int tid); -diff --git a/hotspot/test/gc/g1/TestFromCardCacheIndex.java b/hotspot/test/gc/g1/TestFromCardCacheIndex.java -new file mode 100644 -index 0000000000..f2332306da ---- /dev/null -+++ b/hotspot/test/gc/g1/TestFromCardCacheIndex.java -@@ -0,0 +1,119 @@ -+/* -+ * @test TestFromCardCacheIndex.java -+ * @bug 8196485 -+ * @summary Ensure that G1 does not miss a remembered set entry due to from card cache default value indices. -+ * @key gc -+ * @requires vm.gc.G1 -+ * @requires vm.debug -+ * @requires vm.bits != "32" -+ * @library /test/lib -+ * @modules java.base/jdk.internal.misc -+ * java.management -+ * @build sun.hotspot.WhiteBox -+ * @run driver ClassFileInstaller sun.hotspot.WhiteBox -+ * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. -Xms20M -Xmx20M -XX:+UseCompressedOops -XX:G1HeapRegionSize=1M -XX:HeapBaseMinAddress=2199011721216 -XX:+UseG1GC -verbose:gc TestFromCardCacheIndex -+ */ -+ -+import sun.hotspot.WhiteBox; -+ -+/** -+ * Repeatedly tries to generate references from objects that contained a card with the same index -+ * of the from card cache default value. -+ */ -+public class TestFromCardCacheIndex { -+ private static WhiteBox WB; -+ -+ // Shift value to calculate card indices from addresses. -+ private static final int CardSizeShift = 9; -+ -+ /** -+ * Returns the last address on the heap within the object. -+ * -+ * @param The Object array to get the last address from. -+ */ -+ private static long getObjectLastAddress(Object[] o) { -+ return WB.getObjectAddress(o) + WB.getObjectSize(o) - 1; -+ } -+ -+ /** -+ * Returns the (truncated) 32 bit card index for the given address. -+ * -+ * @param The address to get the 32 bit card index from. -+ */ -+ private static int getCardIndex32bit(long address) { -+ return (int)(address >> CardSizeShift); -+ } -+ -+ // The source arrays that are placed on the heap in old gen. -+ private static int numArrays = 7000; -+ private static int arraySize = 508; -+ // Size of a humongous byte array, a bit less than a 1M region. This makes sure -+ // that we always create a cross-region reference when referencing it. -+ private static int byteArraySize = 1024*1023; -+ -+ public static void main(String[] args) { -+ WB = sun.hotspot.WhiteBox.getWhiteBox(); -+ for (int i = 0; i < 5; i++) { -+ runTest(); -+ WB.fullGC(); -+ } -+ } -+ -+ public static void runTest() { -+ System.out.println("Starting test"); -+ -+ // Spray the heap with random object arrays in the hope that we get one -+ // at the proper place. -+ Object[][] arrays = new Object[numArrays][]; -+ for (int i = 0; i < numArrays; i++) { -+ arrays[i] = new Object[arraySize]; -+ } -+ -+ // Make sure that everything is in old gen. -+ WB.fullGC(); -+ -+ // Find if we got an allocation at the right spot. -+ Object[] arrayWithCardMinus1 = findArray(arrays); -+ -+ if (arrayWithCardMinus1 == null) { -+ System.out.println("Array with card -1 not found. Trying again."); -+ return; -+ } else { -+ System.out.println("Array with card -1 found."); -+ } -+ -+ System.out.println("Modifying the last card in the array with a new object in a different region..."); -+ // Create a target object that is guaranteed to be in a different region. -+ byte[] target = new byte[byteArraySize]; -+ -+ // Modify the last entry of the object we found. -+ arrayWithCardMinus1[arraySize - 1] = target; -+ -+ target = null; -+ // Make sure that the dirty cards are flushed by doing a GC. -+ System.out.println("Doing a GC."); -+ WB.youngGC(); -+ -+ System.out.println("The crash didn't reproduce. Trying again."); -+ } -+ -+ /** -+ * Finds an returns an array that contains a (32 bit truncated) card with value -1. -+ */ -+ private static Object[] findArray(Object[][] arrays) { -+ for (int i = 0; i < arrays.length; i++) { -+ Object[] target = arrays[i]; -+ if (target == null) { -+ continue; -+ } -+ final long startAddress = WB.getObjectAddress(target); -+ final long lastAddress = getObjectLastAddress(target); -+ final int card = getCardIndex32bit(lastAddress); -+ if (card == -1) { -+ Object[] foundArray = target; -+ return foundArray; -+ } -+ } -+ return null; -+ } -+} --- -2.19.0 - diff --git a/The-runok-method-retrying-another-port-does-not-take.patch b/The-runok-method-retrying-another-port-does-not-take.patch deleted file mode 100644 index bb602ac2fdc4fd1094df8dde0ec9bdc360544c35..0000000000000000000000000000000000000000 --- a/The-runok-method-retrying-another-port-does-not-take.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 952b5418911a0cbe864d83998b1c99904830d463 Mon Sep 17 00:00:00 2001 -Date: Fri, 28 Aug 2020 09:21:14 +0800 -Subject: [PATCH] The runok method retrying another port does not take effect - -Summary: : The runok method retrying another port does not take effect -LLT: jdk8u/jdk/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh -Bug url: ---- - jdk/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/jdk/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java b/jdk/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java -index d9c20c678..60219e68a 100644 ---- a/jdk/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java -+++ b/jdk/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java -@@ -824,7 +824,7 @@ public class RmiBootstrapTest { - - String errStr = null; - for (int i=0;i: -LLT: NA -Bug url: NA ---- - jdk/src/share/classes/sun/misc/Version.java.template | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/jdk/src/share/classes/sun/misc/Version.java.template b/jdk/src/share/classes/sun/misc/Version.java.template -index 022c14281..ffdaf9fbc 100644 ---- a/jdk/src/share/classes/sun/misc/Version.java.template -+++ b/jdk/src/share/classes/sun/misc/Version.java.template -@@ -45,7 +45,7 @@ public class Version { - "@@java_runtime_version@@"; - - private static final String company_name = -- "@@company_name@@"; -+ ""; - - static { - init(); --- -2.19.0 - diff --git a/fix-incorrect-offset-for-oop-field-with-weak-memory-.patch b/fix-incorrect-offset-for-oop-field-with-weak-memory-.patch deleted file mode 100644 index 31c4001badc9caa75a577ac436b592309a42f284..0000000000000000000000000000000000000000 --- a/fix-incorrect-offset-for-oop-field-with-weak-memory-.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 7c73365615f00951272310db44dec2939b91b48e Mon Sep 17 00:00:00 2001 -Date: Wed, 19 Feb 2020 19:09:39 +0000 -Subject: [PATCH] fix incorrect offset for oop field with weak memory model - -Summary: : add loadload membar in fast_storefield and fast_accessfield to avoid loading a incorrect offset -LLT: N/A -Bug url: N/A ---- - hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp -index 5a619566..aa9545ee 100644 ---- a/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp -+++ b/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp -@@ -2922,6 +2922,8 @@ void TemplateTable::fast_storefield(TosState state) - // access constant pool cache - __ get_cache_and_index_at_bcp(r2, r1, 1); - -+ __ membar(MacroAssembler::LoadLoad); -+ - // test for volatile with r3 - __ ldrw(r3, Address(r2, in_bytes(base + - ConstantPoolCacheEntry::flags_offset()))); -@@ -3013,6 +3015,9 @@ void TemplateTable::fast_accessfield(TosState state) - - // access constant pool cache - __ get_cache_and_index_at_bcp(r2, r1, 1); -+ -+ __ membar(MacroAssembler::LoadLoad); -+ - __ ldr(r1, Address(r2, in_bytes(ConstantPoolCache::base_offset() + - ConstantPoolCacheEntry::f2_offset()))); - __ ldrw(r3, Address(r2, in_bytes(ConstantPoolCache::base_offset() + --- -2.19.0 - diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index a947e31b578b2e416bd6a4139997f18833838450..31f8e161350a53195c8f009c28f43464861b056f 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -921,7 +921,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever}.%{buildver} -Release: 9 +Release: 10 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -2144,6 +2144,14 @@ require "copy_jdk_configs.lua" %endif %changelog +* Fri Apr 2 2021 Benshuai5D - 1:1.8.0.282-b08.10 +- delete redundant set-vm.vendor-by-configure.patch +- delete redundant make-disable-precompiled-headers-work.patch +- delete redundant FromCardCache-default-card-index-can-cause.patch +- delete redundant The-runok-method-retrying-another-port-does-not-take.patch +- delete redundant fix-incorrect-offset-for-opp-field-with-weak-memory-.patch +- delete redundant dismiss-company_name-info-of-java-version.patch + * Sat Mar 27 2021 Noah - 1:1.8.0.282-b08.9 - add fix_VerifyCerts.java_testcase_bug.patch diff --git a/make-disable-precompiled-headers-work.patch b/make-disable-precompiled-headers-work.patch deleted file mode 100644 index 6a1c9f54ded6ba5972ed84ba1d9b42144566bdcb..0000000000000000000000000000000000000000 --- a/make-disable-precompiled-headers-work.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 16d2fb7faaaad6ae1d3f508af0c654c5c83bf484 Mon Sep 17 00:00:00 2001 -Date: Tue, 8 Sep 2020 09:13:31 +0800 -Subject: [PATCH] make disable precompiled headers work - -Summary: :make disable precompiled headers work -LLT: N/A -Bug url: ---- - hotspot/src/share/vm/oops/oop.hpp | 2 +- - hotspot/src/share/vm/oops/oop.inline.hpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/hotspot/src/share/vm/oops/oop.hpp b/hotspot/src/share/vm/oops/oop.hpp -index 41a7bce4d..8a33412ec 100644 ---- a/hotspot/src/share/vm/oops/oop.hpp -+++ b/hotspot/src/share/vm/oops/oop.hpp -@@ -91,7 +91,7 @@ class oopDesc { - narrowKlass* compressed_klass_addr(); - - void set_klass(Klass* k); -- inline void release_set_klass(Klass* k); -+ void release_set_klass(Klass* k); - - // For klass field compression - int klass_gap() const; -diff --git a/hotspot/src/share/vm/oops/oop.inline.hpp b/hotspot/src/share/vm/oops/oop.inline.hpp -index c3abdb128..3e3883cb6 100644 ---- a/hotspot/src/share/vm/oops/oop.inline.hpp -+++ b/hotspot/src/share/vm/oops/oop.inline.hpp -@@ -141,7 +141,7 @@ inline void oopDesc::set_klass(Klass* k) { - } - } - --void oopDesc::release_set_klass(Klass* k) { -+inline void oopDesc::release_set_klass(Klass* k) { - CHECK_SET_KLASS(k); - if (UseCompressedClassPointers) { - OrderAccess::release_store(compressed_klass_addr(), --- -2.12.3 - diff --git a/set-vm.vendor-by-configure.patch b/set-vm.vendor-by-configure.patch deleted file mode 100644 index b7b3604dbea8259c4e0157ad8d21d34dc751c13a..0000000000000000000000000000000000000000 --- a/set-vm.vendor-by-configure.patch +++ /dev/null @@ -1,54 +0,0 @@ -From cdc9dd2e9c2454259394d4b7f46c9bb720db6643 Mon Sep 17 00:00:00 2001 -Date: Fri, 22 Jan 2021 16:25:03 +0800 -Subject: set vm.vendor by configure - -Summary: : -LLT: java -XshowSettings:properties -Bug url: NA ---- - hotspot/src/share/vm/runtime/vm_version.cpp | 7 ++++++- - jdk/src/share/native/java/lang/System.c | 6 +++--- - 2 files changed, 9 insertions(+), 4 deletions(-) - -diff --git a/hotspot/src/share/vm/runtime/vm_version.cpp b/hotspot/src/share/vm/runtime/vm_version.cpp -index c6a559521..5ee3a7942 100644 ---- a/hotspot/src/share/vm/runtime/vm_version.cpp -+++ b/hotspot/src/share/vm/runtime/vm_version.cpp -@@ -142,7 +142,12 @@ const char* Abstract_VM_Version::vm_name() { - - - const char* Abstract_VM_Version::vm_vendor() { -- return "Huawei Technologies Co., Ltd"; -+#ifdef VENDOR -+ return VENDOR; -+#else -+ return JDK_Version::is_gte_jdk17x_version() ? -+ "Oracle Corporation" : "Sun Microsystems Inc."; -+#endif - } - - -diff --git a/jdk/src/share/native/java/lang/System.c b/jdk/src/share/native/java/lang/System.c -index 758cfabb3..ff80b0abd 100644 ---- a/jdk/src/share/native/java/lang/System.c -+++ b/jdk/src/share/native/java/lang/System.c -@@ -110,13 +110,13 @@ Java_java_lang_System_identityHashCode(JNIEnv *env, jobject this, jobject x) - - /* Third party may overwrite these values. */ - #ifndef VENDOR --#define VENDOR "Huawei Technologies Co., Ltd" -+#define VENDOR "Oracle Corporation" - #endif - #ifndef VENDOR_URL --#define VENDOR_URL "http://jdk.rnd.huawei.com/" -+#define VENDOR_URL "http://java.oracle.com/" - #endif - #ifndef VENDOR_URL_BUG --#define VENDOR_URL_BUG "http://jdk.rnd.huawei.com/" -+#define VENDOR_URL_BUG "http://bugreport.sun.com/bugreport/" - #endif - - #define JAVA_MAX_SUPPORTED_VERSION 52 --- -2.19.0 -