Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
6dcd78ef
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6dcd78ef
编写于
6月 13, 2014
作者:
P
pliden
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8044796: G1: Enable G1CollectedHeap::stop()
Reviewed-by: brutisso, sjohanss
上级
0575a10d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
11 addition
and
38 deletion
+11
-38
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+7
-21
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
+0
-2
src/share/vm/runtime/java.cpp
src/share/vm/runtime/java.cpp
+2
-7
src/share/vm/runtime/thread.cpp
src/share/vm/runtime/thread.cpp
+2
-8
未找到文件。
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
浏览文件 @
6dcd78ef
...
...
@@ -432,14 +432,6 @@ HeapRegion* G1CollectedHeap::pop_dirty_cards_region()
return
hr
;
}
void
G1CollectedHeap
::
stop_conc_gc_threads
()
{
_cg1r
->
stop
();
_cmThread
->
stop
();
if
(
G1StringDedup
::
is_enabled
())
{
G1StringDedup
::
stop
();
}
}
#ifdef ASSERT
// A region is added to the collection set as it is retired
// so an address p can point to a region which will be in the
...
...
@@ -2186,20 +2178,14 @@ jint G1CollectedHeap::initialize() {
}
void
G1CollectedHeap
::
stop
()
{
#if 0
// Stopping concurrent worker threads is currently disabled until
// some bugs in concurrent mark has been resolve. Without fixing
// those bugs first we risk haning during VM exit when trying to
// stop these threads.
// Abort any ongoing concurrent root region scanning and stop all
// concurrent threads. We do this to make sure these threads do
// not continue to execute and access resources (e.g. gclog_or_tty)
// Stop all concurrent threads. We do this to make sure these threads
// do not continue to execute and access resources (e.g. gclog_or_tty)
// that are destroyed during shutdown.
_cm->root_regions()->abort();
_cm->root_regions()->wait_until_scan_finished();
stop_conc_gc_threads();
#endif
_cg1r
->
stop
();
_cmThread
->
stop
();
if
(
G1StringDedup
::
is_enabled
())
{
G1StringDedup
::
stop
();
}
}
size_t
G1CollectedHeap
::
conservative_max_heap_alignment
()
{
...
...
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
浏览文件 @
6dcd78ef
...
...
@@ -1699,8 +1699,6 @@ public:
void
print_all_rsets
()
PRODUCT_RETURN
;
public:
void
stop_conc_gc_threads
();
size_t
pending_card_num
();
size_t
cards_scanned
();
...
...
src/share/vm/runtime/java.cpp
浏览文件 @
6dcd78ef
...
...
@@ -497,9 +497,6 @@ void before_exit(JavaThread * thread) {
os
::
infinite_sleep
();
}
// Stop any ongoing concurrent GC work
Universe
::
heap
()
->
stop
();
// Terminate watcher thread - must before disenrolling any periodic task
if
(
PeriodicTask
::
num_tasks
()
>
0
)
WatcherThread
::
stop
();
...
...
@@ -514,10 +511,8 @@ void before_exit(JavaThread * thread) {
StatSampler
::
disengage
();
StatSampler
::
destroy
();
// We do not need to explicitly stop concurrent GC threads because the
// JVM will be taken down at a safepoint when such threads are inactive --
// except for some concurrent G1 threads, see (comment in)
// Threads::destroy_vm().
// Stop concurrent GC threads
Universe
::
heap
()
->
stop
();
// Print GC/heap related information.
if
(
PrintGCDetails
)
{
...
...
src/share/vm/runtime/thread.cpp
浏览文件 @
6dcd78ef
...
...
@@ -4013,14 +4013,8 @@ bool Threads::destroy_vm() {
// GC vm_operations can get caught at the safepoint, and the
// heap is unparseable if they are caught. Grab the Heap_lock
// to prevent this. The GC vm_operations will not be able to
// queue until after the vm thread is dead.
// After this point, we'll never emerge out of the safepoint before
// the VM exits, so concurrent GC threads do not need to be explicitly
// stopped; they remain inactive until the process exits.
// Note: some concurrent G1 threads may be running during a safepoint,
// but these will not be accessing the heap, just some G1-specific side
// data structures that are not accessed by any other threads but them
// after this point in a terminal safepoint.
// queue until after the vm thread is dead. After this point,
// we'll never emerge out of the safepoint before the VM exits.
MutexLocker
ml
(
Heap_lock
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录