Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
2d8cb491
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看板
提交
2d8cb491
编写于
3月 28, 2008
作者:
J
jcoomes
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6642862: Code cache allocation fails with large pages after 6588638
Reviewed-by: apetrusenko
上级
f70aecd5
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
22 addition
and
6 deletion
+22
-6
src/os/linux/vm/os_linux.cpp
src/os/linux/vm/os_linux.cpp
+4
-0
src/os/solaris/vm/os_solaris.cpp
src/os/solaris/vm/os_solaris.cpp
+6
-0
src/os/windows/vm/os_windows.cpp
src/os/windows/vm/os_windows.cpp
+5
-1
src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
...e/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
+1
-1
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
.../gc_implementation/parallelScavenge/psParallelCompact.cpp
+1
-1
src/share/vm/memory/heap.cpp
src/share/vm/memory/heap.cpp
+4
-3
src/share/vm/runtime/os.hpp
src/share/vm/runtime/os.hpp
+1
-0
未找到文件。
src/os/linux/vm/os_linux.cpp
浏览文件 @
2d8cb491
...
@@ -2480,6 +2480,10 @@ bool os::can_commit_large_page_memory() {
...
@@ -2480,6 +2480,10 @@ bool os::can_commit_large_page_memory() {
return
false
;
return
false
;
}
}
bool
os
::
can_execute_large_page_memory
()
{
return
false
;
}
// Reserve memory at an arbitrary address, only if that area is
// Reserve memory at an arbitrary address, only if that area is
// available (and not reserved for something else).
// available (and not reserved for something else).
...
...
src/os/solaris/vm/os_solaris.cpp
浏览文件 @
2d8cb491
...
@@ -3089,6 +3089,8 @@ bool os::large_page_init() {
...
@@ -3089,6 +3089,8 @@ bool os::large_page_init() {
if
(
UseISM
)
{
if
(
UseISM
)
{
// ISM disables MPSS to be compatible with old JDK behavior
// ISM disables MPSS to be compatible with old JDK behavior
UseMPSS
=
false
;
UseMPSS
=
false
;
_page_sizes
[
0
]
=
_large_page_size
;
_page_sizes
[
1
]
=
vm_page_size
();
}
}
UseMPSS
=
UseMPSS
&&
UseMPSS
=
UseMPSS
&&
...
@@ -3178,6 +3180,10 @@ bool os::can_commit_large_page_memory() {
...
@@ -3178,6 +3180,10 @@ bool os::can_commit_large_page_memory() {
return
UseISM
?
false
:
true
;
return
UseISM
?
false
:
true
;
}
}
bool
os
::
can_execute_large_page_memory
()
{
return
UseISM
?
false
:
true
;
}
static
int
os_sleep
(
jlong
millis
,
bool
interruptible
)
{
static
int
os_sleep
(
jlong
millis
,
bool
interruptible
)
{
const
jlong
limit
=
INT_MAX
;
const
jlong
limit
=
INT_MAX
;
jlong
prevtime
;
jlong
prevtime
;
...
...
src/os/windows/vm/os_windows.cpp
浏览文件 @
2d8cb491
...
@@ -2516,9 +2516,13 @@ bool os::can_commit_large_page_memory() {
...
@@ -2516,9 +2516,13 @@ bool os::can_commit_large_page_memory() {
return
false
;
return
false
;
}
}
bool
os
::
can_execute_large_page_memory
()
{
return
true
;
}
char
*
os
::
reserve_memory_special
(
size_t
bytes
)
{
char
*
os
::
reserve_memory_special
(
size_t
bytes
)
{
DWORD
flag
=
MEM_RESERVE
|
MEM_COMMIT
|
MEM_LARGE_PAGES
;
DWORD
flag
=
MEM_RESERVE
|
MEM_COMMIT
|
MEM_LARGE_PAGES
;
char
*
res
=
(
char
*
)
VirtualAlloc
(
NULL
,
bytes
,
flag
,
PAGE_READWRITE
);
char
*
res
=
(
char
*
)
VirtualAlloc
(
NULL
,
bytes
,
flag
,
PAGE_
EXECUTE_
READWRITE
);
return
res
;
return
res
;
}
}
...
...
src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
浏览文件 @
2d8cb491
...
@@ -41,7 +41,7 @@ ParMarkBitMap::initialize(MemRegion covered_region)
...
@@ -41,7 +41,7 @@ ParMarkBitMap::initialize(MemRegion covered_region)
const
size_t
rs_align
=
page_sz
==
(
size_t
)
os
::
vm_page_size
()
?
0
:
const
size_t
rs_align
=
page_sz
==
(
size_t
)
os
::
vm_page_size
()
?
0
:
MAX2
(
page_sz
,
granularity
);
MAX2
(
page_sz
,
granularity
);
ReservedSpace
rs
(
bytes
,
rs_align
,
false
);
ReservedSpace
rs
(
bytes
,
rs_align
,
rs_align
>
0
);
os
::
trace_page_sizes
(
"par bitmap"
,
raw_bytes
,
raw_bytes
,
page_sz
,
os
::
trace_page_sizes
(
"par bitmap"
,
raw_bytes
,
raw_bytes
,
page_sz
,
rs
.
base
(),
rs
.
size
());
rs
.
base
(),
rs
.
size
());
_virtual_space
=
new
PSVirtualSpace
(
rs
,
page_sz
);
_virtual_space
=
new
PSVirtualSpace
(
rs
,
page_sz
);
...
...
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
浏览文件 @
2d8cb491
...
@@ -413,7 +413,7 @@ ParallelCompactData::create_vspace(size_t count, size_t element_size)
...
@@ -413,7 +413,7 @@ ParallelCompactData::create_vspace(size_t count, size_t element_size)
const
size_t
rs_align
=
page_sz
==
(
size_t
)
os
::
vm_page_size
()
?
0
:
const
size_t
rs_align
=
page_sz
==
(
size_t
)
os
::
vm_page_size
()
?
0
:
MAX2
(
page_sz
,
granularity
);
MAX2
(
page_sz
,
granularity
);
ReservedSpace
rs
(
bytes
,
rs_align
,
false
);
ReservedSpace
rs
(
bytes
,
rs_align
,
rs_align
>
0
);
os
::
trace_page_sizes
(
"par compact"
,
raw_bytes
,
raw_bytes
,
page_sz
,
rs
.
base
(),
os
::
trace_page_sizes
(
"par compact"
,
raw_bytes
,
raw_bytes
,
page_sz
,
rs
.
base
(),
rs
.
size
());
rs
.
size
());
PSVirtualSpace
*
vspace
=
new
PSVirtualSpace
(
rs
,
page_sz
);
PSVirtualSpace
*
vspace
=
new
PSVirtualSpace
(
rs
,
page_sz
);
...
...
src/share/vm/memory/heap.cpp
浏览文件 @
2d8cb491
...
@@ -102,8 +102,9 @@ bool CodeHeap::reserve(size_t reserved_size, size_t committed_size,
...
@@ -102,8 +102,9 @@ bool CodeHeap::reserve(size_t reserved_size, size_t committed_size,
_log2_segment_size
=
exact_log2
(
segment_size
);
_log2_segment_size
=
exact_log2
(
segment_size
);
// Reserve and initialize space for _memory.
// Reserve and initialize space for _memory.
const
size_t
page_size
=
os
::
page_size_for_region
(
committed_size
,
const
size_t
page_size
=
os
::
can_execute_large_page_memory
()
?
reserved_size
,
8
);
os
::
page_size_for_region
(
committed_size
,
reserved_size
,
8
)
:
os
::
vm_page_size
();
const
size_t
granularity
=
os
::
vm_allocation_granularity
();
const
size_t
granularity
=
os
::
vm_allocation_granularity
();
const
size_t
r_align
=
MAX2
(
page_size
,
granularity
);
const
size_t
r_align
=
MAX2
(
page_size
,
granularity
);
const
size_t
r_size
=
align_size_up
(
reserved_size
,
r_align
);
const
size_t
r_size
=
align_size_up
(
reserved_size
,
r_align
);
...
@@ -111,7 +112,7 @@ bool CodeHeap::reserve(size_t reserved_size, size_t committed_size,
...
@@ -111,7 +112,7 @@ bool CodeHeap::reserve(size_t reserved_size, size_t committed_size,
const
size_t
rs_align
=
page_size
==
(
size_t
)
os
::
vm_page_size
()
?
0
:
const
size_t
rs_align
=
page_size
==
(
size_t
)
os
::
vm_page_size
()
?
0
:
MAX2
(
page_size
,
granularity
);
MAX2
(
page_size
,
granularity
);
ReservedSpace
rs
(
r_size
,
rs_align
,
false
);
ReservedSpace
rs
(
r_size
,
rs_align
,
rs_align
>
0
);
os
::
trace_page_sizes
(
"code heap"
,
committed_size
,
reserved_size
,
page_size
,
os
::
trace_page_sizes
(
"code heap"
,
committed_size
,
reserved_size
,
page_size
,
rs
.
base
(),
rs
.
size
());
rs
.
base
(),
rs
.
size
());
if
(
!
_memory
.
initialize
(
rs
,
c_size
))
{
if
(
!
_memory
.
initialize
(
rs
,
c_size
))
{
...
...
src/share/vm/runtime/os.hpp
浏览文件 @
2d8cb491
...
@@ -228,6 +228,7 @@ class os: AllStatic {
...
@@ -228,6 +228,7 @@ class os: AllStatic {
static
bool
large_page_init
();
static
bool
large_page_init
();
static
size_t
large_page_size
();
static
size_t
large_page_size
();
static
bool
can_commit_large_page_memory
();
static
bool
can_commit_large_page_memory
();
static
bool
can_execute_large_page_memory
();
// OS interface to polling page
// OS interface to polling page
static
address
get_polling_page
()
{
return
_polling_page
;
}
static
address
get_polling_page
()
{
return
_polling_page
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录