You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
tl;dr ChunkMap encodes global state (whether a chunk has been allocated or not) but is used as if it's a local metadata which can cause issues when using multiple spaces that access it such as ImmixSpace and MarkSweepSpace.
… own chunks using chunk map (#1304)
The chunk map records the lowest chunk and the highest chunk used by a
space, and accesses all the chunk states (local side metadata) in the
range. There are multiple issues when we use discontiguous spaces.
1. Chunks in the range may be ~~used~~ unused, thus the local side
metadata may be unmapped.
2. Chunks in the range may belong to other spaces. If other spaces also
use the chunk map, they will list all the chunks even when the chunks do
not belong to the space.
This PR makes the chunk state side metadata as a global side metadata.
We need the chunk map for plans that use the chunk map. As we will use
mark sweep or nonmoving immix as the non moving policy, they both use
the chunk map, and the non moving policy is included in every plan, we
just include the side metadata for every plan.
This PR fixes#1197.
tl;dr
ChunkMap
encodes global state (whether a chunk has been allocated or not) but is used as if it's a local metadata which can cause issues when using multiple spaces that access it such asImmixSpace
andMarkSweepSpace
.For more context see here: https://mmtk.zulipchat.com/#narrow/stream/262673-mmtk-core/topic/.60ChunkMap.60.20with.20ImmixSpace.20and.20MarkSweepSpace
The text was updated successfully, but these errors were encountered: