Skip to content

Side metadata issues #458

Open
Open
@qinsoon

Description

@qinsoon

This issue tracks problems of our side metadata implementation.

  • Side metadata bound #462
  • For 64 bits, global side metadata base address is 0x600_0000_0000. For 64 bits, the range for the first space is [0x200_0000_0000, 0x400_0000_0000), for the second space [0x400_0000_0000, 0x600_0000_0000), and for the third space [0x600_0000_0000, 0x800_0000_0000). This means our global side metadata clashes with the third space we have.
  • When we unmap side metadata (at the end of tests), we do not tell the mmapper about the unmapping. The mmapper would still think we have mapped those chunks.
  • When calculating the side metadata address and size to map (e.g. try_mmap_contiguous_metadata_space()), we are not considering overflow. If we try reserve side metadata for the whole address range (e.g. 32 bits), we will have an arithmetic overflow.
  • code duplication between side metadata and header metadata, especially the code that deals with bits and masks for metadata of less than 1 byte.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-obj-metadataArea: Object Metadata (headers, side tables)C-bugCategory: BugP-highPriority: High. A high-priority issue should be fixed as soon as possible.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions