1 Star 0 Fork 81

wujiahua/openjdk-1.8.0

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
PS-GC-adding-acquire_size-method-for-PSParallelCompa.patch 2.29 KB
一键复制 编辑 原始数据 按行查看 历史
jdkboy 提交于 2020-03-21 11:30 . delete redundant info
From 8f0acd949be2c01c445e402ae81421d4554f7d2b Mon Sep 17 00:00:00 2001
Date: Fri, 13 Dec 2019 12:02:23 +0000
Subject: [PATCH] PS GC: adding acquire_size method for
PSParallelCompact::mark_obj.
Summary: GC: adding acquire_size method for PSParallelCompact::mark_obj.
LLT: NA
Bug url:
---
.../share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp | 2 +-
hotspot/src/share/vm/oops/oop.hpp | 1 +
hotspot/src/share/vm/oops/oop.inline.hpp | 4 ++++
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
index 881f380cea..f971383a09 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
@@ -1326,7 +1326,7 @@ class PSParallelCompact : AllStatic {
};
inline bool PSParallelCompact::mark_obj(oop obj) {
- const int obj_size = obj->size();
+ const int obj_size = obj->acquire_size();
if (mark_bitmap()->mark_obj(obj, obj_size)) {
_summary_data.add_obj(obj, obj_size);
return true;
diff --git a/hotspot/src/share/vm/oops/oop.hpp b/hotspot/src/share/vm/oops/oop.hpp
index 142ab2769c..42ad9307f7 100644
--- a/hotspot/src/share/vm/oops/oop.hpp
+++ b/hotspot/src/share/vm/oops/oop.hpp
@@ -123,6 +123,7 @@ class oopDesc {
// Returns the actual oop size of the object
int size();
+ int acquire_size();
// Sometimes (for complicated concurrency-related reasons), it is useful
// to be able to figure out the size of an object knowing its klass.
diff --git a/hotspot/src/share/vm/oops/oop.inline.hpp b/hotspot/src/share/vm/oops/oop.inline.hpp
index b519d86118..803080c9e7 100644
--- a/hotspot/src/share/vm/oops/oop.inline.hpp
+++ b/hotspot/src/share/vm/oops/oop.inline.hpp
@@ -839,6 +839,10 @@ inline int oopDesc::size() {
return size_given_klass(klass());
}
+inline int oopDesc::acquire_size() {
+ return size_given_klass(klass_or_null_acquire());
+}
+
inline void update_barrier_set(void* p, oop v, bool release = false) {
assert(oopDesc::bs() != NULL, "Uninitialized bs in oop!");
oopDesc::bs()->write_ref_field(p, v, release);
--
2.12.3
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/varlardohaeris/openjdk-1.8.0.git
git@gitee.com:varlardohaeris/openjdk-1.8.0.git
varlardohaeris
openjdk-1.8.0
openjdk-1.8.0
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385