Skip to content

Never use side metadata for LOS-local metadata #847

Open
@steveblackburn

Description

@steveblackburn

LOS-specific metadata should be either in the vm header (if the VM allows it), or in an MMTk-owned header word allocated before the vm object.

This is because side metadata introduces a spatial tax. That tax is entirely avoidable in the case of the LOS, and since the LOS constitutes a lot of the used heap space in many applications, the impact of this can be significant.

The tradeoff is quite different for LOS objects (where the addition of an extra word in front of an object is a small overhead), compared to small objects (where an extra word is an expensive overhead to be avoided).

For global metadata (applied uniformly to all objects), this is not an option. But for LOS-specific metadata this is an error.

Using side metadata for LOS objects is thus a performance bug, and the fix is fairly straightforward.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-obj-metadataArea: Object Metadata (headers, side tables)C-bugCategory: BugP-lowPriority: Low. A low-priority issue won't be scheduled and assigned. Any help is welcome.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions