diff --git a/.hgtags b/.hgtags index 2235619fe4cf95956f8e753e928fac17fccb49c1..0d83d5839e585ed0800efadb449f51708173ecba 100644 --- a/.hgtags +++ b/.hgtags @@ -674,3 +674,5 @@ b852350a2bc6d5f43006e2be53fb74d148290708 hs25.60-b19 bd9221771f6e34e63b3b340ffcf9906ccf882dae jdk8u60-b19 e01a710549a962cee94728271248a7d89fb56c49 hs25.60-b20 3b6c97747ccc61d189bca64b4afa3ffc13680810 jdk8u60-b20 +4b6687a4f2fe84211b8b3b5afb34b5186afbddf6 hs25.60-b21 +e0d75c284bd1c09fd7d9ef09627d8a99b88d468d jdk8u60-b21 diff --git a/make/hotspot_version b/make/hotspot_version index 691dd76efacdccc49fa8691a28b70acc3e5ef263..7972d0131d5600cd24be2b7c409c995936f8dae5 100644 --- a/make/hotspot_version +++ b/make/hotspot_version @@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2015 HS_MAJOR_VER=25 HS_MINOR_VER=60 -HS_BUILD_NUMBER=20 +HS_BUILD_NUMBER=21 JDK_MAJOR_VER=1 JDK_MINOR_VER=8 diff --git a/src/share/vm/memory/genMarkSweep.cpp b/src/share/vm/memory/genMarkSweep.cpp index ee4afdc6d7742739dac73d6c497442d11a9fe55a..c5dc4947c282174134fbe98918de579b237c67bb 100644 --- a/src/share/vm/memory/genMarkSweep.cpp +++ b/src/share/vm/memory/genMarkSweep.cpp @@ -211,7 +211,7 @@ void GenMarkSweep::mark_sweep_phase1(int level, false, // Younger gens are not roots. true, // activate StrongRootsScope GenCollectedHeap::SO_None, - GenCollectedHeap::StrongRootsOnly, + ClassUnloading, &follow_root_closure, &follow_root_closure, &follow_cld_closure); diff --git a/src/share/vm/memory/heap.cpp b/src/share/vm/memory/heap.cpp index 3b54600383ec4e75e37c27d1d30519810a866421..a0fb60346c2d8d5a36dbef6c504cfb7478017396 100644 --- a/src/share/vm/memory/heap.cpp +++ b/src/share/vm/memory/heap.cpp @@ -99,9 +99,7 @@ bool CodeHeap::reserve(size_t reserved_size, size_t committed_size, // Reserve and initialize space for _memory. size_t page_size = os::vm_page_size(); if (os::can_execute_large_page_memory()) { - const size_t min_pages = 8; - page_size = MIN2(os::page_size_for_region_aligned(committed_size, min_pages), - os::page_size_for_region_aligned(reserved_size, min_pages)); + page_size = os::page_size_for_region_unaligned(reserved_size, 8); } const size_t granularity = os::vm_allocation_granularity(); diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp index 7a7fbe666ed81d398cf45a3759b3ab7b4b7dc2eb..0ca38f1e9948c2878c0280f8a12d9322f5c1a784 100644 --- a/src/share/vm/runtime/arguments.cpp +++ b/src/share/vm/runtime/arguments.cpp @@ -1372,6 +1372,12 @@ void Arguments::set_cms_and_parnew_gc_flags() { if (!FLAG_IS_DEFAULT(CMSParPromoteBlocksToClaim) || !FLAG_IS_DEFAULT(OldPLABWeight)) { CFLS_LAB::modify_initialization(OldPLABSize, OldPLABWeight); } + + if (!ClassUnloading) { + FLAG_SET_CMDLINE(bool, CMSClassUnloadingEnabled, false); + FLAG_SET_CMDLINE(bool, ExplicitGCInvokesConcurrentAndUnloadsClasses, false); + } + if (PrintGCDetails && Verbose) { tty->print_cr("MarkStackSize: %uk MarkStackSizeMax: %uk", (unsigned int) (MarkStackSize / K), (uint) (MarkStackSizeMax / K));