[master] RFR: JVMTI: Don't use object header for marking [v2]

Roman Kennke rkennke at openjdk.java.net
Thu Mar 24 20:31:16 UTC 2022


> JVMTI marks objects in order to track whether or not it has already visited objects during heap walking. This uses the usual GC marking bits in the object header. However, this proves to be confusing and brittle because some GCs also uses those header bits for marking and/or indicating forwarded objects. In particular, it becomes unreliable for Shenandoah GC to distinguish JVMTI marked objects from forwarded objects.
> 
> JVMTI should have no business in marking objects in their header. This change proposes to let JVMTI use its own (temporary) marking bitmap instead. This decouples JVMTI better from GCs.
> 
> Testing:
>  - [x] tier1
>  - [x] tier2
>  - [ ] tier3

Roman Kennke has updated the pull request incrementally with one additional commit since the last revision:

  Restore missing include

-------------

Changes:
  - all: https://git.openjdk.java.net/lilliput/pull/45/files
  - new: https://git.openjdk.java.net/lilliput/pull/45/files/1385125e..f2fb0368

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=lilliput&pr=45&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=lilliput&pr=45&range=00-01

  Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/lilliput/pull/45.diff
  Fetch: git fetch https://git.openjdk.java.net/lilliput pull/45/head:pull/45

PR: https://git.openjdk.java.net/lilliput/pull/45


More information about the lilliput-dev mailing list