-
Notifications
You must be signed in to change notification settings - Fork 77
Refactor Metadata #342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor Metadata #342
Conversation
openjdk-binding-test |
jikesrvm-binding-test |
jikesrvm-perf-compare |
openjdk-perf-compare |
v8-binding-test |
OpenJDK Micro Benchmarks
Running: ['rebench', 'microbm.conf', 'CI_SemiSpace']
|
OpenJDK
SemiSpace (wrench-2021-06-23-Wed-154208)
GenCopy (wrench-2021-06-23-Wed-175016)
|
JikesRVM
NoGC (wrench-2021-06-23-Wed-202614)
SemiSpace (wrench-2021-06-23-Wed-203814)
|
OpenJDK
SemiSpace (wrench-2021-06-23-Wed-220841)
GenCopy (wrench-2021-06-24-Thu-001645)
|
OpenJDK Micro Benchmarks
Running: ['rebench', 'microbm.conf', 'CI_SemiSpace']
|
JikesRVM
NoGC (wrench-2021-06-25-Fri-113637)
SemiSpace (wrench-2021-06-25-Fri-114837)
|
OpenJDK
SemiSpace (spanner-2021-06-25-Fri-095849)
GenCopy (spanner-2021-06-25-Fri-121303)
|
OpenJDK Micro Benchmarks
Running: ['rebench', 'microbm.conf', 'CI_SemiSpace']
|
JikesRVM
NoGC (spanner-2021-06-25-Fri-174231)
SemiSpace (spanner-2021-06-25-Fri-175511)
|
OpenJDK
SemiSpace (wrench-2021-06-25-Fri-191602)
GenCopy (wrench-2021-06-25-Fri-212400)
|
JikesRVM
NoGC (wrench-2021-06-25-Fri-233743)
SemiSpace (wrench-2021-06-25-Fri-234942)
|
OpenJDK Micro Benchmarks
Running: ['rebench', 'microbm.conf', 'CI_SemiSpace']
|
OpenJDK
SemiSpace (spanner-2021-06-25-Fri-222420)
GenCopy (spanner-2021-06-26-Sat-003904)
|
This PR refactors metadata so that it becomes more general and some of its use-cases such as
gc_byte
andheader_byte
become consistent with other uses of metadata, and closes issue #320.A summary of changes:
1 - Make
side_metadata
a sub-module of themetadata
module and generalise theSideMetadataSpec
toMetadataSpec
with an additional field to indicate whether the spec is on-side or in-header.2 - Add optional atomic ordering to metadata operations.
3 - Move the definition of per-object Metadata specifications to the VM object model.
4 - Remove
gc_byte
andheader_byte
modules.The new metadata design differentiates per-object metadata (e.g. forwarding-bits and marking-bit) from other types of metadata including per-address (e.g. alloc-bit) and per-X (where X != object size), because the per-object metadata can optionally be kept in the object headers.
MMTk now acknowledges the VM-dependant nature of the in-object metadata, and asks the VM bindings to contribute by implementing the related parts in the
ObjectModel
.