提交 ce59300a 编写于 作者: J jcoomes

7061204: clean the chunk table synchronously in embedded builds

Reviewed-by: dholmes, never, jwilhelm, kvn
上级 4b437dc0
...@@ -2716,6 +2716,10 @@ void CMSCollector::gc_epilogue(bool full) { ...@@ -2716,6 +2716,10 @@ void CMSCollector::gc_epilogue(bool full) {
bitMapLock()->unlock(); bitMapLock()->unlock();
releaseFreelistLocks(); releaseFreelistLocks();
if (!CleanChunkPoolAsync) {
Chunk::clean_chunk_pool();
}
_between_prologue_and_epilogue = false; // ready for next cycle _between_prologue_and_epilogue = false; // ready for next cycle
} }
......
...@@ -905,6 +905,10 @@ void DefNewGeneration::gc_epilogue(bool full) { ...@@ -905,6 +905,10 @@ void DefNewGeneration::gc_epilogue(bool full) {
to()->check_mangled_unused_area_complete(); to()->check_mangled_unused_area_complete();
} }
if (!CleanChunkPoolAsync) {
Chunk::clean_chunk_pool();
}
// update the generation and space performance counters // update the generation and space performance counters
update_counters(); update_counters();
gch->collector_policy()->counters()->update_counters(); gch->collector_policy()->counters()->update_counters();
......
...@@ -1384,6 +1384,10 @@ void GenCollectedHeap::gc_epilogue(bool full) { ...@@ -1384,6 +1384,10 @@ void GenCollectedHeap::gc_epilogue(bool full) {
generation_iterate(&blk, false); // not old-to-young. generation_iterate(&blk, false); // not old-to-young.
perm_gen()->gc_epilogue(full); perm_gen()->gc_epilogue(full);
if (!CleanChunkPoolAsync) {
Chunk::clean_chunk_pool();
}
always_do_update_barrier = UseConcMarkSweepGC; always_do_update_barrier = UseConcMarkSweepGC;
}; };
......
...@@ -444,6 +444,9 @@ class CommandLineFlags { ...@@ -444,6 +444,9 @@ class CommandLineFlags {
product(bool, UsePPCLWSYNC, true, \ product(bool, UsePPCLWSYNC, true, \
"Use lwsync instruction if true, else use slower sync") \ "Use lwsync instruction if true, else use slower sync") \
\ \
develop(bool, CleanChunkPoolAsync, falseInEmbedded, \
"Whether to clean the chunk pool asynchronously") \
\
/* Temporary: See 6948537 */ \ /* Temporary: See 6948537 */ \
experimental(bool, UseMemSetInBOT, true, \ experimental(bool, UseMemSetInBOT, true, \
"(Unstable) uses memset in BOT updates in GC code") \ "(Unstable) uses memset in BOT updates in GC code") \
......
...@@ -3347,7 +3347,9 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) { ...@@ -3347,7 +3347,9 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
// Notify JVMTI agents that VM initialization is complete - nop if no agents. // Notify JVMTI agents that VM initialization is complete - nop if no agents.
JvmtiExport::post_vm_initialized(); JvmtiExport::post_vm_initialized();
Chunk::start_chunk_pool_cleaner_task(); if (CleanChunkPoolAsync) {
Chunk::start_chunk_pool_cleaner_task();
}
// initialize compiler(s) // initialize compiler(s)
CompileBroker::compilation_init(); CompileBroker::compilation_init();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册