Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
348f2314
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看板
提交
348f2314
编写于
2月 14, 2020
作者:
N
neugens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8238589: Necessary code cleanup in JFR for JDK8u
Reviewed-by: shade, apetushkov
上级
9dd0bdd6
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
52 addition
and
124 deletion
+52
-124
src/os/linux/vm/perfMemory_linux.cpp
src/os/linux/vm/perfMemory_linux.cpp
+0
-1
src/share/vm/classfile/systemDictionary.cpp
src/share/vm/classfile/systemDictionary.cpp
+15
-16
src/share/vm/compiler/compileBroker.cpp
src/share/vm/compiler/compileBroker.cpp
+1
-1
src/share/vm/gc_implementation/shared/gcTraceSend.cpp
src/share/vm/gc_implementation/shared/gcTraceSend.cpp
+0
-76
src/share/vm/opto/superword.hpp
src/share/vm/opto/superword.hpp
+26
-26
src/share/vm/runtime/biasedLocking.cpp
src/share/vm/runtime/biasedLocking.cpp
+8
-0
src/share/vm/runtime/mutexLocker.cpp
src/share/vm/runtime/mutexLocker.cpp
+1
-1
src/share/vm/runtime/mutexLocker.hpp
src/share/vm/runtime/mutexLocker.hpp
+1
-1
src/share/vm/runtime/synchronizer.cpp
src/share/vm/runtime/synchronizer.cpp
+0
-2
未找到文件。
src/os/linux/vm/perfMemory_linux.cpp
浏览文件 @
348f2314
...
@@ -34,7 +34,6 @@
...
@@ -34,7 +34,6 @@
#include "utilities/exceptions.hpp"
#include "utilities/exceptions.hpp"
// put OS-includes here
// put OS-includes here
#include <dirent.h>
# include <sys/types.h>
# include <sys/types.h>
# include <sys/mman.h>
# include <sys/mman.h>
# include <errno.h>
# include <errno.h>
...
...
src/share/vm/classfile/systemDictionary.cpp
浏览文件 @
348f2314
...
@@ -617,7 +617,7 @@ static void post_class_load_event(EventClassLoad &event,
...
@@ -617,7 +617,7 @@ static void post_class_load_event(EventClassLoad &event,
(
ClassLoaderData
*
)
NULL
);
(
ClassLoaderData
*
)
NULL
);
event
.
commit
();
event
.
commit
();
}
}
#endif
// INCLUDE_JFR
#endif
}
}
Klass
*
SystemDictionary
::
resolve_instance_class_or_null
(
Symbol
*
name
,
Klass
*
SystemDictionary
::
resolve_instance_class_or_null
(
Symbol
*
name
,
...
@@ -1337,24 +1337,23 @@ instanceKlassHandle SystemDictionary::load_instance_class(Symbol* class_name, Ha
...
@@ -1337,24 +1337,23 @@ instanceKlassHandle SystemDictionary::load_instance_class(Symbol* class_name, Ha
if
(
!
k
.
is_null
())
{
if
(
!
k
.
is_null
())
{
k
=
find_or_define_instance_class
(
class_name
,
class_loader
,
k
,
CHECK_
(
nh
));
k
=
find_or_define_instance_class
(
class_name
,
class_loader
,
k
,
CHECK_
(
nh
));
}
}
#if INCLUDE_JFR
#if INCLUDE_JFR
else
{
if
(
k
.
is_null
()
&&
(
class_name
==
jfr_event_handler_proxy
))
{
assert
(
jfr_event_handler_proxy
!=
NULL
,
"invariant"
);
assert
(
jfr_event_handler_proxy
!=
NULL
,
"invariant"
);
if
(
class_name
==
jfr_event_handler_proxy
)
{
// EventHandlerProxy class is generated dynamically in
// EventHandlerProxy class is generated dynamically in
// EventHandlerProxyCreator::makeEventHandlerProxyClass
// EventHandlerProxyCreator::makeEventHandlerProxyClass
// method, so we generate a Java call from here.
// method, so we generate a Java call from here.
//
//
// EventHandlerProxy class will finally be defined in
// EventHandlerProxy class will finally be defined in
// SystemDictionary::resolve_from_stream method, down
// SystemDictionary::resolve_from_stream method, down
// the call stack. Bootstrap classloader is parallel-capable,
// the call stack. Bootstrap classloader is parallel-capable,
// so no concurrency issues are expected.
// so no concurrency issues are expected.
CLEAR_PENDING_EXCEPTION
;
CLEAR_PENDING_EXCEPTION
;
k
=
JfrUpcalls
::
load_event_handler_proxy_class
(
THREAD
);
k
=
JfrUpcalls
::
load_event_handler_proxy_class
(
THREAD
);
assert
(
!
k
.
is_null
(),
"invariant"
);
assert
(
!
k
.
is_null
(),
"invariant"
);
}
}
}
#endif
// INCLUDE_JFR
#endif
return
k
;
return
k
;
}
else
{
}
else
{
...
...
src/share/vm/compiler/compileBroker.cpp
浏览文件 @
348f2314
...
@@ -2023,7 +2023,7 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) {
...
@@ -2023,7 +2023,7 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) {
compilable
=
ci_env
.
compilable
();
compilable
=
ci_env
.
compilable
();
if
(
ci_env
.
failing
())
{
if
(
ci_env
.
failing
())
{
const
char
*
failure_reason
=
ci_env
.
failure_reason
();
const
char
*
failure_reason
=
ci_env
.
failure_reason
();
const
char
*
retry_message
=
ci_env
.
retry_message
();
const
char
*
retry_message
=
ci_env
.
retry_message
();
task
->
set_failure_reason
(
failure_reason
);
task
->
set_failure_reason
(
failure_reason
);
if
(
_compilation_log
!=
NULL
)
{
if
(
_compilation_log
!=
NULL
)
{
...
...
src/share/vm/gc_implementation/shared/gcTraceSend.cpp
浏览文件 @
348f2314
...
@@ -233,82 +233,6 @@ void G1NewTracer::send_evacuation_failed_event(const EvacuationFailedInfo& ef_in
...
@@ -233,82 +233,6 @@ void G1NewTracer::send_evacuation_failed_event(const EvacuationFailedInfo& ef_in
}
}
}
}
// XXX
//static JfrStructG1EvacuationStatistics
//create_g1_evacstats(unsigned gcid, const G1EvacSummary& summary) {
// JfrStructG1EvacuationStatistics s;
// s.set_gcId(gcid);
// s.set_allocated(summary.allocated() * HeapWordSize);
// s.set_wasted(summary.wasted() * HeapWordSize);
// s.set_used(summary.used() * HeapWordSize);
// s.set_undoWaste(summary.undo_wasted() * HeapWordSize);
// s.set_regionEndWaste(summary.region_end_waste() * HeapWordSize);
// s.set_regionsRefilled(summary.regions_filled());
// s.set_directAllocated(summary.direct_allocated() * HeapWordSize);
// s.set_failureUsed(summary.failure_used() * HeapWordSize);
// s.set_failureWaste(summary.failure_waste() * HeapWordSize);
// return s;
//}
//
//void G1NewTracer::send_young_evacuation_statistics(const G1EvacSummary& summary) const {
// EventG1EvacuationYoungStatistics surv_evt;
// if (surv_evt.should_commit()) {
// surv_evt.set_statistics(create_g1_evacstats(_shared_gc_info.gc_id().id(), summary));
// surv_evt.commit();
// }
//}
//
//void G1NewTracer::send_old_evacuation_statistics(const G1EvacSummary& summary) const {
// EventG1EvacuationOldStatistics old_evt;
// if (old_evt.should_commit()) {
// old_evt.set_statistics(create_g1_evacstats(_shared_gc_info.gc_id().id(), summary));
// old_evt.commit();
// }
//}
//
//void G1NewTracer::send_basic_ihop_statistics(size_t threshold,
// size_t target_occupancy,
// size_t current_occupancy,
// size_t last_allocation_size,
// double last_allocation_duration,
// double last_marking_length) {
// EventG1BasicIHOP evt;
// if (evt.should_commit()) {
// evt.set_gcId(_shared_gc_info.gc_id().id());
// evt.set_threshold(threshold);
// evt.set_targetOccupancy(target_occupancy);
// evt.set_thresholdPercentage(target_occupancy > 0 ? ((double)threshold / target_occupancy) : 0.0);
// evt.set_currentOccupancy(current_occupancy);
// evt.set_recentMutatorAllocationSize(last_allocation_size);
// evt.set_recentMutatorDuration(last_allocation_duration * MILLIUNITS);
// evt.set_recentAllocationRate(last_allocation_duration != 0.0 ? last_allocation_size / last_allocation_duration : 0.0);
// evt.set_lastMarkingDuration(last_marking_length * MILLIUNITS);
// evt.commit();
// }
//}
//
//void G1NewTracer::send_adaptive_ihop_statistics(size_t threshold,
// size_t internal_target_occupancy,
// size_t current_occupancy,
// size_t additional_buffer_size,
// double predicted_allocation_rate,
// double predicted_marking_length,
// bool prediction_active) {
// EventG1AdaptiveIHOP evt;
// if (evt.should_commit()) {
// evt.set_gcId(_shared_gc_info.gc_id().id());
// evt.set_threshold(threshold);
// evt.set_thresholdPercentage(internal_target_occupancy > 0 ? ((double)threshold / internal_target_occupancy) : 0.0);
// evt.set_ihopTargetOccupancy(internal_target_occupancy);
// evt.set_currentOccupancy(current_occupancy);
// evt.set_additionalBufferSize(additional_buffer_size);
// evt.set_predictedAllocationRate(predicted_allocation_rate);
// evt.set_predictedMarkingDuration(predicted_marking_length * MILLIUNITS);
// evt.set_predictionActive(prediction_active);
// evt.commit();
// }
//}
#endif // INCLUDE_ALL_GCS
#endif // INCLUDE_ALL_GCS
static
JfrStructVirtualSpace
to_struct
(
const
VirtualSpaceSummary
&
summary
)
{
static
JfrStructVirtualSpace
to_struct
(
const
VirtualSpaceSummary
&
summary
)
{
...
...
src/share/vm/opto/superword.hpp
浏览文件 @
348f2314
...
@@ -201,32 +201,6 @@ class SWNodeInfo VALUE_OBJ_CLASS_SPEC {
...
@@ -201,32 +201,6 @@ class SWNodeInfo VALUE_OBJ_CLASS_SPEC {
static
const
SWNodeInfo
initial
;
static
const
SWNodeInfo
initial
;
};
};
// JVMCI: OrderedPair is moved up to deal with compilation issues on Windows
//------------------------------OrderedPair---------------------------
// Ordered pair of Node*.
class
OrderedPair
VALUE_OBJ_CLASS_SPEC
{
protected:
Node
*
_p1
;
Node
*
_p2
;
public:
OrderedPair
()
:
_p1
(
NULL
),
_p2
(
NULL
)
{}
OrderedPair
(
Node
*
p1
,
Node
*
p2
)
{
if
(
p1
->
_idx
<
p2
->
_idx
)
{
_p1
=
p1
;
_p2
=
p2
;
}
else
{
_p1
=
p2
;
_p2
=
p1
;
}
}
bool
operator
==
(
const
OrderedPair
&
rhs
)
{
return
_p1
==
rhs
.
_p1
&&
_p2
==
rhs
.
_p2
;
}
void
print
()
{
tty
->
print
(
" (%d, %d)"
,
_p1
->
_idx
,
_p2
->
_idx
);
}
static
const
OrderedPair
initial
;
};
// -----------------------------SuperWord---------------------------------
// -----------------------------SuperWord---------------------------------
// Transforms scalar operations into packed (superword) operations.
// Transforms scalar operations into packed (superword) operations.
class
SuperWord
:
public
ResourceObj
{
class
SuperWord
:
public
ResourceObj
{
...
@@ -450,6 +424,7 @@ class SuperWord : public ResourceObj {
...
@@ -450,6 +424,7 @@ class SuperWord : public ResourceObj {
};
};
//------------------------------SWPointer---------------------------
//------------------------------SWPointer---------------------------
// Information about an address for dependence checking and vector alignment
// Information about an address for dependence checking and vector alignment
class
SWPointer
VALUE_OBJ_CLASS_SPEC
{
class
SWPointer
VALUE_OBJ_CLASS_SPEC
{
...
@@ -531,4 +506,29 @@ class SWPointer VALUE_OBJ_CLASS_SPEC {
...
@@ -531,4 +506,29 @@ class SWPointer VALUE_OBJ_CLASS_SPEC {
void
print
();
void
print
();
};
};
//------------------------------OrderedPair---------------------------
// Ordered pair of Node*.
class
OrderedPair
VALUE_OBJ_CLASS_SPEC
{
protected:
Node
*
_p1
;
Node
*
_p2
;
public:
OrderedPair
()
:
_p1
(
NULL
),
_p2
(
NULL
)
{}
OrderedPair
(
Node
*
p1
,
Node
*
p2
)
{
if
(
p1
->
_idx
<
p2
->
_idx
)
{
_p1
=
p1
;
_p2
=
p2
;
}
else
{
_p1
=
p2
;
_p2
=
p1
;
}
}
bool
operator
==
(
const
OrderedPair
&
rhs
)
{
return
_p1
==
rhs
.
_p1
&&
_p2
==
rhs
.
_p2
;
}
void
print
()
{
tty
->
print
(
" (%d, %d)"
,
_p1
->
_idx
,
_p2
->
_idx
);
}
static
const
OrderedPair
initial
;
};
#endif // SHARE_VM_OPTO_SUPERWORD_HPP
#endif // SHARE_VM_OPTO_SUPERWORD_HPP
src/share/vm/runtime/biasedLocking.cpp
浏览文件 @
348f2314
...
@@ -256,10 +256,12 @@ static BiasedLocking::Condition revoke_bias(oop obj, bool allow_rebias, bool is_
...
@@ -256,10 +256,12 @@ static BiasedLocking::Condition revoke_bias(oop obj, bool allow_rebias, bool is_
}
}
}
}
#if INCLUDE_JFR
// If requested, return information on which thread held the bias
// If requested, return information on which thread held the bias
if
(
biased_locker
!=
NULL
)
{
if
(
biased_locker
!=
NULL
)
{
*
biased_locker
=
biased_thread
;
*
biased_locker
=
biased_thread
;
}
}
#endif // INCLUDE_JFR
return
BiasedLocking
::
BIAS_REVOKED
;
return
BiasedLocking
::
BIAS_REVOKED
;
}
}
...
@@ -497,11 +499,15 @@ public:
...
@@ -497,11 +499,15 @@ public:
if
(
TraceBiasedLocking
)
{
if
(
TraceBiasedLocking
)
{
tty
->
print_cr
(
"Revoking bias with potentially per-thread safepoint:"
);
tty
->
print_cr
(
"Revoking bias with potentially per-thread safepoint:"
);
}
}
JavaThread
*
biased_locker
=
NULL
;
JavaThread
*
biased_locker
=
NULL
;
_status_code
=
revoke_bias
((
*
_obj
)(),
false
,
false
,
_requesting_thread
,
&
biased_locker
);
_status_code
=
revoke_bias
((
*
_obj
)(),
false
,
false
,
_requesting_thread
,
&
biased_locker
);
#if INCLUDE_JFR
if
(
biased_locker
!=
NULL
)
{
if
(
biased_locker
!=
NULL
)
{
_biased_locker_id
=
JFR_THREAD_ID
(
biased_locker
);
_biased_locker_id
=
JFR_THREAD_ID
(
biased_locker
);
}
}
#endif // INCLUDE_JFR
clean_up_cached_monitor_info
();
clean_up_cached_monitor_info
();
return
;
return
;
}
else
{
}
else
{
...
@@ -516,9 +522,11 @@ public:
...
@@ -516,9 +522,11 @@ public:
return
_status_code
;
return
_status_code
;
}
}
#if INCLUDE_JFR
traceid
biased_locker
()
const
{
traceid
biased_locker
()
const
{
return
_biased_locker_id
;
return
_biased_locker_id
;
}
}
#endif // INCLUDE_JFR
};
};
...
...
src/share/vm/runtime/mutexLocker.cpp
浏览文件 @
348f2314
...
@@ -284,7 +284,7 @@ void mutex_init() {
...
@@ -284,7 +284,7 @@ void mutex_init() {
def
(
CompileThread_lock
,
Monitor
,
nonleaf
+
5
,
false
);
def
(
CompileThread_lock
,
Monitor
,
nonleaf
+
5
,
false
);
def
(
PeriodicTask_lock
,
Monitor
,
nonleaf
+
5
,
true
);
def
(
PeriodicTask_lock
,
Monitor
,
nonleaf
+
5
,
true
);
#if
def
INCLUDE_JFR
#if INCLUDE_JFR
def
(
JfrMsg_lock
,
Monitor
,
leaf
,
true
);
def
(
JfrMsg_lock
,
Monitor
,
leaf
,
true
);
def
(
JfrBuffer_lock
,
Mutex
,
leaf
,
true
);
def
(
JfrBuffer_lock
,
Mutex
,
leaf
,
true
);
def
(
JfrThreadGroups_lock
,
Mutex
,
leaf
,
true
);
def
(
JfrThreadGroups_lock
,
Mutex
,
leaf
,
true
);
...
...
src/share/vm/runtime/mutexLocker.hpp
浏览文件 @
348f2314
...
@@ -142,7 +142,7 @@ extern Mutex* Management_lock; // a lock used to serialize JVM
...
@@ -142,7 +142,7 @@ extern Mutex* Management_lock; // a lock used to serialize JVM
extern
Monitor
*
Service_lock
;
// a lock used for service thread operation
extern
Monitor
*
Service_lock
;
// a lock used for service thread operation
extern
Monitor
*
PeriodicTask_lock
;
// protects the periodic task structure
extern
Monitor
*
PeriodicTask_lock
;
// protects the periodic task structure
#if
def
INCLUDE_JFR
#if INCLUDE_JFR
extern
Mutex
*
JfrStacktrace_lock
;
// used to guard access to the JFR stacktrace table
extern
Mutex
*
JfrStacktrace_lock
;
// used to guard access to the JFR stacktrace table
extern
Monitor
*
JfrMsg_lock
;
// protects JFR messaging
extern
Monitor
*
JfrMsg_lock
;
// protects JFR messaging
extern
Mutex
*
JfrBuffer_lock
;
// protects JFR buffer operations
extern
Mutex
*
JfrBuffer_lock
;
// protects JFR buffer operations
...
...
src/share/vm/runtime/synchronizer.cpp
浏览文件 @
348f2314
...
@@ -1185,8 +1185,6 @@ static void post_monitor_inflate_event(EventJavaMonitorInflate* event,
...
@@ -1185,8 +1185,6 @@ static void post_monitor_inflate_event(EventJavaMonitorInflate* event,
assert
(
event
->
should_commit
(),
"invariant"
);
assert
(
event
->
should_commit
(),
"invariant"
);
event
->
set_monitorClass
(
obj
->
klass
());
event
->
set_monitorClass
(
obj
->
klass
());
event
->
set_address
((
uintptr_t
)(
void
*
)
obj
);
event
->
set_address
((
uintptr_t
)(
void
*
)
obj
);
// XXX no such counters. implement?
// event->set_cause((u1)cause);
event
->
commit
();
event
->
commit
();
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录