Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
cf953296
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看板
提交
cf953296
编写于
6月 29, 2012
作者:
J
jcoomes
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
c1cdd3ac
d7727789
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
135 addition
and
526 deletion
+135
-526
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+0
-3
src/share/vm/gc_implementation/g1/g1_globals.hpp
src/share/vm/gc_implementation/g1/g1_globals.hpp
+3
-0
src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+117
-473
src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp
src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp
+15
-50
未找到文件。
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
浏览文件 @
cf953296
...
...
@@ -4750,9 +4750,6 @@ public:
_g1h
->
g1_policy
()
->
record_thread_age_table
(
pss
.
age_table
());
_g1h
->
update_surviving_young_words
(
pss
.
surviving_young_words
()
+
1
);
// Clean up any par-expanded rem sets.
HeapRegionRemSet
::
par_cleanup
();
if
(
ParallelGCVerbose
)
{
MutexLocker
x
(
stats_lock
());
pss
.
print_termination_stats
(
worker_id
);
...
...
src/share/vm/gc_implementation/g1/g1_globals.hpp
浏览文件 @
cf953296
...
...
@@ -53,6 +53,9 @@
develop(bool, G1TraceMarkStackOverflow, false, \
"If true, extra debugging code for CM restart for ovflw.") \
\
develop(bool, G1TraceHeapRegionRememberedSet, false, \
"Enables heap region remembered set debug logs") \
\
diagnostic(bool, G1SummarizeConcMark, false, \
"Summarize concurrent mark info") \
\
...
...
src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
浏览文件 @
cf953296
此差异已折叠。
点击以展开。
src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp
浏览文件 @
cf953296
/*
* Copyright (c) 2001, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
2
, 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
...
...
@@ -35,7 +35,7 @@ class G1CollectedHeap;
class
G1BlockOffsetSharedArray
;
class
HeapRegion
;
class
HeapRegionRemSetIterator
;
class
P
osParPRT
;
class
P
erRegionTable
;
class
SparsePRT
;
// Essentially a wrapper around SparsePRTCleanupTask. See
...
...
@@ -79,15 +79,14 @@ class OtherRegionsTable VALUE_OBJ_CLASS_SPEC {
size_t
_n_coarse_entries
;
static
jint
_n_coarsenings
;
P
osParPRT
**
_fine_grain_regions
;
size_t
_n_fine_entries
;
P
erRegionTable
**
_fine_grain_regions
;
size_t
_n_fine_entries
;
#define SAMPLE_FOR_EVICTION 1
#if SAMPLE_FOR_EVICTION
// Used to sample a subset of the fine grain PRTs to determine which
// PRT to evict and coarsen.
size_t
_fine_eviction_start
;
static
size_t
_fine_eviction_stride
;
static
size_t
_fine_eviction_sample_size
;
#endif
SparsePRT
_sparse_table
;
...
...
@@ -98,21 +97,18 @@ class OtherRegionsTable VALUE_OBJ_CLASS_SPEC {
// Requires "prt" to be the first element of the bucket list appropriate
// for "hr". If this list contains an entry for "hr", return it,
// otherwise return "NULL".
P
osParPRT
*
find_region_table
(
size_t
ind
,
HeapRegion
*
hr
)
const
;
P
erRegionTable
*
find_region_table
(
size_t
ind
,
HeapRegion
*
hr
)
const
;
// Find, delete, and return a candidate P
osParPRT
, if any exists,
// Find, delete, and return a candidate P
erRegionTable
, if any exists,
// adding the deleted region to the coarse bitmap. Requires the caller
// to hold _m, and the fine-grain table to be full.
P
osParPRT
*
delete_region_table
();
P
erRegionTable
*
delete_region_table
();
// If a PRT for "hr" is in the bucket list indicated by "ind" (which must
// be the correct index for "hr"), delete it and return true; else return
// false.
bool
del_single_region_table
(
size_t
ind
,
HeapRegion
*
hr
);
static
jint
_cache_probes
;
static
jint
_cache_hits
;
// Indexed by thread X heap region, to minimize thread contention.
static
int
**
_from_card_cache
;
static
size_t
_from_card_cache_max_regions
;
...
...
@@ -127,10 +123,6 @@ public:
// sense.
void
add_reference
(
OopOrNarrowOopStar
from
,
int
tid
);
void
add_reference
(
OopOrNarrowOopStar
from
)
{
return
add_reference
(
from
,
0
);
}
// Removes any entries shown by the given bitmaps to contain only dead
// objects.
void
scrub
(
CardTableModRefBS
*
ctbs
,
BitMap
*
region_bm
,
BitMap
*
card_bm
);
...
...
@@ -233,14 +225,12 @@ public:
static
jint
n_coarsenings
()
{
return
OtherRegionsTable
::
n_coarsenings
();
}
/* Used in the sequential case. Returns "true" iff this addition causes
the size limit to be reached. */
// Used in the sequential case.
void
add_reference
(
OopOrNarrowOopStar
from
)
{
_other_regions
.
add_reference
(
from
);
_other_regions
.
add_reference
(
from
,
0
);
}
/* Used in the parallel case. Returns "true" iff this addition causes
the size limit to be reached. */
// Used in the parallel case.
void
add_reference
(
OopOrNarrowOopStar
from
,
int
tid
)
{
_other_regions
.
add_reference
(
from
,
tid
);
}
...
...
@@ -253,15 +243,6 @@ public:
// entries for this region in other remsets.
void
clear
();
// Forget any entries due to pointers from "from_hr".
void
clear_incoming_entry
(
HeapRegion
*
from_hr
)
{
_other_regions
.
clear_incoming_entry
(
from_hr
);
}
#if 0
virtual void cleanup() = 0;
#endif
// Attempt to claim the region. Returns true iff this call caused an
// atomic transition from Unclaimed to Claimed.
bool
claim_iter
();
...
...
@@ -290,12 +271,6 @@ public:
// Initialize the given iterator to iterate over this rem set.
void
init_iterator
(
HeapRegionRemSetIterator
*
iter
)
const
;
#if 0
// Apply the "do_card" method to the start address of every card in the
// rem set. Returns false if some application of the closure aborted.
virtual bool card_iterate(CardClosure* iter) = 0;
#endif
// The actual # of bytes this hr_remset takes up.
size_t
mem_size
()
{
return
_other_regions
.
mem_size
()
...
...
@@ -322,10 +297,7 @@ public:
void
print
()
const
;
// Called during a stop-world phase to perform any deferred cleanups.
// The second version may be called by parallel threads after then finish
// collection work.
static
void
cleanup
();
static
void
par_cleanup
();
// Declare the heap size (in # of regions) to the HeapRegionRemSet(s).
// (Uses it to initialize from_card_cache).
...
...
@@ -367,7 +339,7 @@ class HeapRegionRemSetIterator : public CHeapObj {
// Local caching of HRRS fields.
const
BitMap
*
_coarse_map
;
P
osParPRT
**
_fine_grain_regions
;
P
erRegionTable
**
_fine_grain_regions
;
G1BlockOffsetSharedArray
*
_bosa
;
G1CollectedHeap
*
_g1h
;
...
...
@@ -404,8 +376,9 @@ class HeapRegionRemSetIterator : public CHeapObj {
// Index of bucket-list we're working on.
int
_fine_array_index
;
// Per Region Table we're doing within current bucket list.
P
osParPRT
*
_fine_cur_prt
;
P
erRegionTable
*
_fine_cur_prt
;
/* SparsePRT::*/
SparsePRTIter
_sparse_iter
;
...
...
@@ -435,12 +408,4 @@ public:
}
};
#if 0
class CardClosure: public Closure {
public:
virtual void do_card(HeapWord* card_start) = 0;
};
#endif
#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONREMSET_HPP
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录