Projects
Mega:23.09
openjdk-1.8.0
_service:tar_scm:PS-GC-adding-acquire_size-meth...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:PS-GC-adding-acquire_size-method-for-PSParallelCompa.patch of Package openjdk-1.8.0
From 124ad73c00d643445653ad9a0d424b50316df1c6 Mon Sep 17 00:00:00 2001 Date: Fri, 22 Jan 2021 15:25:45 +0800 Subject: PS GC: adding acquire_size method for Summary: GC: adding acquire_size method for PSParallelCompact::mark_obj. LLT: NA Bug url: --- .../gc_implementation/parallelScavenge/psParallelCompact.hpp | 2 +- hotspot/src/share/vm/oops/oop.hpp | 2 +- hotspot/src/share/vm/oops/oop.inline.hpp | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp index 881f380ce..f971383a0 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 97d44c046..a5ff97260 100644 --- a/hotspot/src/share/vm/oops/oop.hpp +++ b/hotspot/src/share/vm/oops/oop.hpp @@ -105,7 +105,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. int size_given_klass(Klass* klass); diff --git a/hotspot/src/share/vm/oops/oop.inline.hpp b/hotspot/src/share/vm/oops/oop.inline.hpp index 2ba94158f..7e03033b0 100644 --- a/hotspot/src/share/vm/oops/oop.inline.hpp +++ b/hotspot/src/share/vm/oops/oop.inline.hpp @@ -551,6 +551,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.19.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2