Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
e0ffd929
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看板
提交
e0ffd929
编写于
12月 15, 2008
作者:
S
swamyv
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6653214: MemoryPoolMXBean.setUsageThreshold() does not support large heap sizes.
Reviewed-by: ysr, mchung
上级
90972b2f
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
37 addition
and
32 deletion
+37
-32
src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+1
-1
src/share/vm/memory/cardTableModRefBS.cpp
src/share/vm/memory/cardTableModRefBS.cpp
+1
-1
src/share/vm/memory/cardTableModRefBS.hpp
src/share/vm/memory/cardTableModRefBS.hpp
+1
-1
src/share/vm/runtime/arguments.cpp
src/share/vm/runtime/arguments.cpp
+27
-22
src/share/vm/runtime/arguments.hpp
src/share/vm/runtime/arguments.hpp
+3
-3
src/share/vm/services/management.cpp
src/share/vm/services/management.cpp
+4
-4
未找到文件。
src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
浏览文件 @
e0ffd929
...
...
@@ -181,7 +181,7 @@ public:
void
scrub
(
CardTableModRefBS
*
ctbs
,
BitMap
*
card_bm
)
{
HeapWord
*
hr_bot
=
hr
()
->
bottom
();
in
t
hr_first_card_index
=
ctbs
->
index_for
(
hr_bot
);
size_
t
hr_first_card_index
=
ctbs
->
index_for
(
hr_bot
);
bm
()
->
set_intersection_at_offset
(
*
card_bm
,
hr_first_card_index
);
#if PRT_COUNT_OCCUPIED
recount_occupied
();
...
...
src/share/vm/memory/cardTableModRefBS.cpp
浏览文件 @
e0ffd929
...
...
@@ -283,7 +283,7 @@ void CardTableModRefBS::resize_covered_region(MemRegion new_region) {
}
else
{
entry
=
byte_after
(
old_region
.
last
());
}
assert
(
index_for
(
new_region
.
last
())
<
(
int
)
_guard_index
,
assert
(
index_for
(
new_region
.
last
())
<
_guard_index
,
"The guard card will be overwritten"
);
// This line commented out cleans the newly expanded region and
// not the aligned up expanded region.
...
...
src/share/vm/memory/cardTableModRefBS.hpp
浏览文件 @
e0ffd929
...
...
@@ -428,7 +428,7 @@ public:
}
// Mapping from address to card marking array index.
in
t
index_for
(
void
*
p
)
{
size_
t
index_for
(
void
*
p
)
{
assert
(
_whole_heap
.
contains
(
p
),
"out of bounds access to card marking array"
);
return
byte_for
(
p
)
-
_byte_map
;
...
...
src/share/vm/runtime/arguments.cpp
浏览文件 @
e0ffd929
...
...
@@ -444,9 +444,9 @@ char* SysClassPath::add_jars_to_path(char* path, const char* directory) {
}
// Parses a memory size specification string.
static
bool
atom
ll
(
const
char
*
s
,
j
long
*
result
)
{
jlong
n
=
0
;
int
args_read
=
sscanf
(
s
,
os
::
jlong_format_specifier
(),
&
n
);
static
bool
atom
ull
(
const
char
*
s
,
ju
long
*
result
)
{
j
u
long
n
=
0
;
int
args_read
=
sscanf
(
s
,
os
::
j
u
long_format_specifier
(),
&
n
);
if
(
args_read
!=
1
)
{
return
false
;
}
...
...
@@ -460,15 +460,20 @@ static bool atomll(const char *s, jlong* result) {
switch
(
*
s
)
{
case
'T'
:
case
't'
:
*
result
=
n
*
G
*
K
;
// Check for overflow.
if
(
*
result
/
((
julong
)
G
*
K
)
!=
n
)
return
false
;
return
true
;
case
'G'
:
case
'g'
:
*
result
=
n
*
G
;
if
(
*
result
/
G
!=
n
)
return
false
;
return
true
;
case
'M'
:
case
'm'
:
*
result
=
n
*
M
;
if
(
*
result
/
M
!=
n
)
return
false
;
return
true
;
case
'K'
:
case
'k'
:
*
result
=
n
*
K
;
if
(
*
result
/
K
!=
n
)
return
false
;
return
true
;
case
'\0'
:
*
result
=
n
;
...
...
@@ -478,10 +483,10 @@ static bool atomll(const char *s, jlong* result) {
}
}
Arguments
::
ArgsRange
Arguments
::
check_memory_size
(
j
long
size
,
j
long
min_size
)
{
Arguments
::
ArgsRange
Arguments
::
check_memory_size
(
j
ulong
size
,
ju
long
min_size
)
{
if
(
size
<
min_size
)
return
arg_too_small
;
// Check that size will fit in a size_t (only relevant on 32-bit)
if
(
(
julong
)
size
>
max_uintx
)
return
arg_too_big
;
if
(
size
>
max_uintx
)
return
arg_too_big
;
return
arg_in_range
;
}
...
...
@@ -522,10 +527,10 @@ static bool set_fp_numeric_flag(char* name, char* value, FlagValueOrigin origin)
static
bool
set_numeric_flag
(
char
*
name
,
char
*
value
,
FlagValueOrigin
origin
)
{
jlong
v
;
j
u
long
v
;
intx
intx_v
;
bool
is_neg
=
false
;
// Check the sign first since atomll() parses only unsigned values.
// Check the sign first since atom
u
ll() parses only unsigned values.
if
(
*
value
==
'-'
)
{
if
(
!
CommandLineFlags
::
intxAt
(
name
,
&
intx_v
))
{
return
false
;
...
...
@@ -533,7 +538,7 @@ static bool set_numeric_flag(char* name, char* value, FlagValueOrigin origin) {
value
++
;
is_neg
=
true
;
}
if
(
!
atomll
(
value
,
&
v
))
{
if
(
!
atom
u
ll
(
value
,
&
v
))
{
return
false
;
}
intx_v
=
(
intx
)
v
;
...
...
@@ -1677,9 +1682,9 @@ static bool match_option(const JavaVMOption* option, const char** names, const c
}
Arguments
::
ArgsRange
Arguments
::
parse_memory_size
(
const
char
*
s
,
jlong
*
long_arg
,
jlong
min_size
)
{
if
(
!
atomll
(
s
,
long_arg
))
return
arg_unreadable
;
j
u
long
*
long_arg
,
j
u
long
min_size
)
{
if
(
!
atom
u
ll
(
s
,
long_arg
))
return
arg_unreadable
;
return
check_memory_size
(
*
long_arg
,
min_size
);
}
...
...
@@ -1857,7 +1862,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
FLAG_SET_CMDLINE
(
bool
,
BackgroundCompilation
,
false
);
// -Xmn for compatibility with other JVM vendors
}
else
if
(
match_option
(
option
,
"-Xmn"
,
&
tail
))
{
jlong
long_initial_eden_size
=
0
;
j
u
long
long_initial_eden_size
=
0
;
ArgsRange
errcode
=
parse_memory_size
(
tail
,
&
long_initial_eden_size
,
1
);
if
(
errcode
!=
arg_in_range
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
...
...
@@ -1869,7 +1874,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
FLAG_SET_CMDLINE
(
uintx
,
NewSize
,
(
size_t
)
long_initial_eden_size
);
// -Xms
}
else
if
(
match_option
(
option
,
"-Xms"
,
&
tail
))
{
jlong
long_initial_heap_size
=
0
;
j
u
long
long_initial_heap_size
=
0
;
ArgsRange
errcode
=
parse_memory_size
(
tail
,
&
long_initial_heap_size
,
1
);
if
(
errcode
!=
arg_in_range
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
...
...
@@ -1882,7 +1887,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
set_min_heap_size
(
initial_heap_size
());
// -Xmx
}
else
if
(
match_option
(
option
,
"-Xmx"
,
&
tail
))
{
jlong
long_max_heap_size
=
0
;
j
u
long
long_max_heap_size
=
0
;
ArgsRange
errcode
=
parse_memory_size
(
tail
,
&
long_max_heap_size
,
1
);
if
(
errcode
!=
arg_in_range
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
...
...
@@ -1915,7 +1920,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
}
// -Xss
}
else
if
(
match_option
(
option
,
"-Xss"
,
&
tail
))
{
jlong
long_ThreadStackSize
=
0
;
j
u
long
long_ThreadStackSize
=
0
;
ArgsRange
errcode
=
parse_memory_size
(
tail
,
&
long_ThreadStackSize
,
1000
);
if
(
errcode
!=
arg_in_range
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
...
...
@@ -1931,9 +1936,9 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
// HotSpot does not have separate native and Java stacks, ignore silently for compatibility
// -Xmaxjitcodesize
}
else
if
(
match_option
(
option
,
"-Xmaxjitcodesize"
,
&
tail
))
{
jlong
long_ReservedCodeCacheSize
=
0
;
j
u
long
long_ReservedCodeCacheSize
=
0
;
ArgsRange
errcode
=
parse_memory_size
(
tail
,
&
long_ReservedCodeCacheSize
,
InitialCodeCacheSize
);
(
size_t
)
InitialCodeCacheSize
);
if
(
errcode
!=
arg_in_range
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
"Invalid maximum code cache size: %s
\n
"
,
...
...
@@ -2238,7 +2243,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
}
else
if
(
match_option
(
option
,
"-XX:TLEFragmentationRatio="
,
&
tail
))
{
// No longer used.
}
else
if
(
match_option
(
option
,
"-XX:TLESize="
,
&
tail
))
{
jlong
long_tlab_size
=
0
;
j
u
long
long_tlab_size
=
0
;
ArgsRange
errcode
=
parse_memory_size
(
tail
,
&
long_tlab_size
,
1
);
if
(
errcode
!=
arg_in_range
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
...
...
@@ -2293,7 +2298,7 @@ SOLARIS_ONLY(
"-XX:ParCMSPromoteBlocksToClaim in the future
\n
"
);
}
else
if
(
match_option
(
option
,
"-XX:ParallelGCOldGenAllocBufferSize="
,
&
tail
))
{
jlong
old_plab_size
=
0
;
j
u
long
old_plab_size
=
0
;
ArgsRange
errcode
=
parse_memory_size
(
tail
,
&
old_plab_size
,
1
);
if
(
errcode
!=
arg_in_range
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
...
...
@@ -2301,13 +2306,13 @@ SOLARIS_ONLY(
describe_range_error
(
errcode
);
return
JNI_EINVAL
;
}
FLAG_SET_CMDLINE
(
uintx
,
OldPLABSize
,
(
julong
)
old_plab_size
);
FLAG_SET_CMDLINE
(
uintx
,
OldPLABSize
,
old_plab_size
);
jio_fprintf
(
defaultStream
::
error_stream
(),
"Please use -XX:OldPLABSize in place of "
"-XX:ParallelGCOldGenAllocBufferSize in the future
\n
"
);
}
else
if
(
match_option
(
option
,
"-XX:ParallelGCToSpaceAllocBufferSize="
,
&
tail
))
{
jlong
young_plab_size
=
0
;
j
u
long
young_plab_size
=
0
;
ArgsRange
errcode
=
parse_memory_size
(
tail
,
&
young_plab_size
,
1
);
if
(
errcode
!=
arg_in_range
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
...
...
@@ -2315,7 +2320,7 @@ SOLARIS_ONLY(
describe_range_error
(
errcode
);
return
JNI_EINVAL
;
}
FLAG_SET_CMDLINE
(
uintx
,
YoungPLABSize
,
(
julong
)
young_plab_size
);
FLAG_SET_CMDLINE
(
uintx
,
YoungPLABSize
,
young_plab_size
);
jio_fprintf
(
defaultStream
::
error_stream
(),
"Please use -XX:YoungPLABSize in place of "
"-XX:ParallelGCToSpaceAllocBufferSize in the future
\n
"
);
...
...
src/share/vm/runtime/arguments.hpp
浏览文件 @
e0ffd929
...
...
@@ -339,9 +339,9 @@ class Arguments : AllStatic {
}
static
bool
verify_percentage
(
uintx
value
,
const
char
*
name
);
static
void
describe_range_error
(
ArgsRange
errcode
);
static
ArgsRange
check_memory_size
(
j
long
size
,
j
long
min_size
);
static
ArgsRange
parse_memory_size
(
const
char
*
s
,
jlong
*
long_arg
,
jlong
min_size
);
static
ArgsRange
check_memory_size
(
j
ulong
size
,
ju
long
min_size
);
static
ArgsRange
parse_memory_size
(
const
char
*
s
,
j
u
long
*
long_arg
,
j
u
long
min_size
);
// methods to build strings from individual args
static
void
build_jvm_args
(
const
char
*
arg
);
...
...
src/share/vm/services/management.cpp
浏览文件 @
e0ffd929
...
...
@@ -694,10 +694,10 @@ JVM_ENTRY(jlong, jmm_SetPoolThreshold(JNIEnv* env, jobject obj, jmmThresholdType
-
1
);
}
if
(
threshold
>
max_
intx
)
{
THROW_MSG_
(
vmSymbols
::
java_lang_IllegalArgumentException
(),
"Invalid threshold value > max value of size_t"
,
-
1
);
if
(
(
size_t
)
threshold
>
max_u
intx
)
{
stringStream
st
;
st
.
print
(
"Invalid valid threshold value. Threshold value ("
UINT64_FORMAT
") > max value of size_t ("
SIZE_FORMAT
")"
,
(
size_t
)
threshold
,
max_uintx
);
THROW_MSG_
(
vmSymbols
::
java_lang_IllegalArgumentException
(),
st
.
as_string
(),
-
1
);
}
MemoryPool
*
pool
=
get_memory_pool_from_jobject
(
obj
,
CHECK_
(
0L
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录