Skip to content

When do we process slots more than once? #1421

@no-defun-allowed

Description

@no-defun-allowed

I am implementing a remembered set for the Compressor, so that we can enumerate the slots from outside the Compressor space which refer into the Compressor space, in order to update the references. But I sometimes find that slots are duplicated in the remset. Updating a slot is not idempotent with the Compressor, so I have to deduplicate the remset, which is fast but probably not as fast as not deduplicating. I build the remset by detecting these slots in a modified version of PlanProcessEdges::process_slot. I haven't worked out how to track the provenance of slots which are duplicated, but at least some appear to be roots from mmtk-openjdk, as the slots are misaligned as embedded OOPs would be.

Should an implementor of ProcessEdgesWork anticipate seeing a slot more than once? Should VM bindings be permitted to give MMTk duplicated slots?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions