Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
b71b9c95
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b71b9c95
编写于
1月 03, 2013
作者:
J
jmasa
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8004895: NPG: JMapPermCore test failure caused by warnings about missing field
Reviewed-by: johnc
上级
6ea88389
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
21 addition
and
16 deletion
+21
-16
src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
...entation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+9
-5
src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp
...entation/concurrentMarkSweep/compactibleFreeListSpace.hpp
+1
-1
src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
...m/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
+3
-5
src/share/vm/memory/binaryTreeDictionary.cpp
src/share/vm/memory/binaryTreeDictionary.cpp
+3
-3
src/share/vm/memory/binaryTreeDictionary.hpp
src/share/vm/memory/binaryTreeDictionary.hpp
+4
-0
src/share/vm/runtime/vmStructs.cpp
src/share/vm/runtime/vmStructs.cpp
+1
-2
未找到文件。
src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
浏览文件 @
b71b9c95
...
...
@@ -102,7 +102,7 @@ CompactibleFreeListSpace::CompactibleFreeListSpace(BlockOffsetSharedArray* bs,
// temporarily disabled).
switch
(
dictionaryChoice
)
{
case
FreeBlockDictionary
<
FreeChunk
>::
dictionaryBinaryTree
:
_dictionary
=
new
BinaryTreeDictionary
<
FreeChunk
,
AdaptiveFreeList
>
(
mr
);
_dictionary
=
new
AFLBinaryTreeDictionary
(
mr
);
break
;
case
FreeBlockDictionary
<
FreeChunk
>::
dictionarySplayTree
:
case
FreeBlockDictionary
<
FreeChunk
>::
dictionarySkipList
:
...
...
@@ -122,7 +122,8 @@ CompactibleFreeListSpace::CompactibleFreeListSpace(BlockOffsetSharedArray* bs,
// moved to its new location before the klass is moved.
// Set the _refillSize for the linear allocation blocks
if
(
!
use_adaptive_freelists
)
{
FreeChunk
*
fc
=
_dictionary
->
get_chunk
(
mr
.
word_size
());
FreeChunk
*
fc
=
_dictionary
->
get_chunk
(
mr
.
word_size
(),
FreeBlockDictionary
<
FreeChunk
>::
atLeast
);
// The small linAB initially has all the space and will allocate
// a chunk of any size.
HeapWord
*
addr
=
(
HeapWord
*
)
fc
;
...
...
@@ -1647,7 +1648,8 @@ CompactibleFreeListSpace::getChunkFromIndexedFreeListHelper(size_t size,
FreeChunk
*
CompactibleFreeListSpace
::
getChunkFromDictionary
(
size_t
size
)
{
assert_locked
();
FreeChunk
*
fc
=
_dictionary
->
get_chunk
(
size
);
FreeChunk
*
fc
=
_dictionary
->
get_chunk
(
size
,
FreeBlockDictionary
<
FreeChunk
>::
atLeast
);
if
(
fc
==
NULL
)
{
return
NULL
;
}
...
...
@@ -1664,7 +1666,8 @@ CompactibleFreeListSpace::getChunkFromDictionary(size_t size) {
FreeChunk
*
CompactibleFreeListSpace
::
getChunkFromDictionaryExact
(
size_t
size
)
{
assert_locked
();
FreeChunk
*
fc
=
_dictionary
->
get_chunk
(
size
);
FreeChunk
*
fc
=
_dictionary
->
get_chunk
(
size
,
FreeBlockDictionary
<
FreeChunk
>::
atLeast
);
if
(
fc
==
NULL
)
{
return
fc
;
}
...
...
@@ -1677,7 +1680,8 @@ CompactibleFreeListSpace::getChunkFromDictionaryExact(size_t size) {
if
(
fc
->
size
()
<
size
+
MinChunkSize
)
{
// Return the chunk to the dictionary and go get a bigger one.
returnChunkToDictionary
(
fc
);
fc
=
_dictionary
->
get_chunk
(
size
+
MinChunkSize
);
fc
=
_dictionary
->
get_chunk
(
size
+
MinChunkSize
,
FreeBlockDictionary
<
FreeChunk
>::
atLeast
);
if
(
fc
==
NULL
)
{
return
NULL
;
}
...
...
src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp
浏览文件 @
b71b9c95
...
...
@@ -131,7 +131,7 @@ class CompactibleFreeListSpace: public CompactibleSpace {
LinearAllocBlock
_smallLinearAllocBlock
;
FreeBlockDictionary
<
FreeChunk
>::
DictionaryChoice
_dictionaryChoice
;
FreeBlockDictionary
<
FreeChunk
>
*
_dictionary
;
// ptr to dictionary for large size blocks
AFLBinaryTreeDictionary
*
_dictionary
;
// ptr to dictionary for large size blocks
AdaptiveFreeList
<
FreeChunk
>
_indexedFreeList
[
IndexSetSize
];
// indexed array for small size blocks
...
...
src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
浏览文件 @
b71b9c95
...
...
@@ -25,8 +25,6 @@
#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP
#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP
typedef
BinaryTreeDictionary
<
FreeChunk
,
AdaptiveFreeList
>
AFLBinaryTreeDictionary
;
#define VM_STRUCTS_CMS(nonstatic_field, \
volatile_nonstatic_field, \
static_field) \
...
...
@@ -42,6 +40,7 @@ typedef BinaryTreeDictionary<FreeChunk, AdaptiveFreeList> AFLBinaryTreeDictionar
static_field(ConcurrentMarkSweepThread, _collector, CMSCollector*) \
nonstatic_field(LinearAllocBlock, _word_size, size_t) \
nonstatic_field(AFLBinaryTreeDictionary, _total_size, size_t) \
nonstatic_field(CompactibleFreeListSpace, _dictionary, AFLBinaryTreeDictionary*) \
nonstatic_field(CompactibleFreeListSpace, _indexedFreeList[0], FreeList<FreeChunk>) \
nonstatic_field(CompactibleFreeListSpace, _smallLinearAllocBlock, LinearAllocBlock)
...
...
@@ -62,10 +61,9 @@ typedef BinaryTreeDictionary<FreeChunk, AdaptiveFreeList> AFLBinaryTreeDictionar
declare_toplevel_type(SurrogateLockerThread*) \
declare_toplevel_type(CompactibleFreeListSpace*) \
declare_toplevel_type(CMSCollector*) \
declare_toplevel_type(AFLBinaryTreeDictionary
*)
\
declare_toplevel_type(AFLBinaryTreeDictionary
)
\
declare_toplevel_type(LinearAllocBlock) \
declare_toplevel_type(FreeBlockDictionary<FreeChunk>) \
declare_type(AFLBinaryTreeDictionary, FreeBlockDictionary<FreeChunk>)
declare_toplevel_type(FreeBlockDictionary<FreeChunk>)
#define VM_INT_CONSTANTS_CMS(declare_constant) \
declare_constant(Generation::ConcurrentMarkSweep) \
...
...
src/share/vm/memory/binaryTreeDictionary.cpp
浏览文件 @
b71b9c95
...
...
@@ -873,7 +873,7 @@ void BinaryTreeDictionary<Chunk_t, FreeList_t>::dict_census_update(size_t size,
#ifndef SERIALGC
template
<
>
void
BinaryTreeDictionary
<
FreeChunk
,
AdaptiveFreeList
>
::
dict_census_update
(
size_t
size
,
bool
split
,
bool
birth
){
void
AFLBinaryTreeDictionary
::
dict_census_update
(
size_t
size
,
bool
split
,
bool
birth
){
TreeList
<
FreeChunk
,
AdaptiveFreeList
>*
nd
=
find_list
(
size
);
if
(
nd
)
{
if
(
split
)
{
...
...
@@ -911,7 +911,7 @@ bool BinaryTreeDictionary<Chunk_t, FreeList_t>::coal_dict_over_populated(size_t
#ifndef SERIALGC
template
<
>
bool
BinaryTreeDictionary
<
FreeChunk
,
AdaptiveFreeList
>
::
coal_dict_over_populated
(
size_t
size
)
{
bool
AFLBinaryTreeDictionary
::
coal_dict_over_populated
(
size_t
size
)
{
if
(
FLSAlwaysCoalesceLarge
)
return
true
;
TreeList
<
FreeChunk
,
AdaptiveFreeList
>*
list_of_size
=
find_list
(
size
);
...
...
@@ -1288,7 +1288,7 @@ void BinaryTreeDictionary<Chunk_t, FreeList_t>::print_dict_census(void) const {
#ifndef SERIALGC
template
<
>
void
BinaryTreeDictionary
<
FreeChunk
,
AdaptiveFreeList
>
::
print_dict_census
(
void
)
const
{
void
AFLBinaryTreeDictionary
::
print_dict_census
(
void
)
const
{
gclog_or_tty
->
print
(
"
\n
BinaryTree
\n
"
);
AdaptiveFreeList
<
FreeChunk
>::
print_labels_on
(
gclog_or_tty
,
"size"
);
...
...
src/share/vm/memory/binaryTreeDictionary.hpp
浏览文件 @
b71b9c95
...
...
@@ -43,6 +43,10 @@ template <class Chunk_t, template <class> class FreeList_t> class AscendTreeCens
template
<
class
Chunk_t
,
template
<
class
>
class
FreeList_t
>
class
DescendTreeCensusClosure
;
template
<
class
Chunk_t
,
template
<
class
>
class
FreeList_t
>
class
DescendTreeSearchClosure
;
class
FreeChunk
;
template
<
class
>
class
AdaptiveFreeList
;
typedef
BinaryTreeDictionary
<
FreeChunk
,
AdaptiveFreeList
>
AFLBinaryTreeDictionary
;
template
<
class
Chunk_t
,
template
<
class
>
class
FreeList_t
>
class
TreeList
:
public
FreeList_t
<
Chunk_t
>
{
friend
class
TreeChunk
<
Chunk_t
,
FreeList_t
>
;
...
...
src/share/vm/runtime/vmStructs.cpp
浏览文件 @
b71b9c95
...
...
@@ -2087,8 +2087,7 @@ typedef BinaryTreeDictionary<Metablock, FreeList> MetablockTreeDictionary;
declare_toplevel_type(FreeBlockDictionary<Metablock>*) \
declare_toplevel_type(FreeList<Metablock>*) \
declare_toplevel_type(FreeList<Metablock>) \
declare_toplevel_type(MetablockTreeDictionary*) \
declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>)
declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>)
//--------------------------------------------------------------------------------
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录