-
Enhancement
-
Resolution: Unresolved
-
P4
-
9
CMMarkstack uses a single contiguous memory area for its mark stack.
First, it reserves MarkStackSize elements of virtual memory, and during mark stack expansion it allows up to MarkStackSizeMax memory. This expansion recreates the virtual space mapping, copies over elements and then continues.
The following things could be looked at and improved:
- There does not seem to be a need to do this in case of 64 bit machines.
- use the MmapArrayAllocator to save on initialization code
- maybe look at some kind of segmented mark stack
- implement optional pre-touch
First, it reserves MarkStackSize elements of virtual memory, and during mark stack expansion it allows up to MarkStackSizeMax memory. This expansion recreates the virtual space mapping, copies over elements and then continues.
The following things could be looked at and improved:
- There does not seem to be a need to do this in case of 64 bit machines.
- use the MmapArrayAllocator to save on initialization code
- maybe look at some kind of segmented mark stack
- implement optional pre-touch
- duplicates
-
JDK-8151168 G1 mark stack is allocated manually using VirtualSpace methods
-
- Closed
-
- relates to
-
JDK-8161367 Reconsider global mark stack sizing policy
-
- Open
-
-
JDK-8165318 Global mark stack should respect the AlwaysPreTouch flag
-
- Open
-
-
JDK-8159422 Very high Concurrent Mark mark stack contention
-
- Resolved
-
-
JDK-8165674 G1CMMarkStack::out_of_memory possibly redundant
-
- Resolved
-
-
JDK-8079081 CMMarkStack indices should be unsigned.
-
- Closed
-
(1 relates to)