JDK-8151215 : Modify layout of (large) Concurrent Mark data structures
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • Submitted: 2016-03-03
  • Updated: 2016-06-16
  • Resolved: 2016-03-14
Related Reports
Relates :  
Relates :  
Description
In JDK-8077144 we noticed that a large part of startup is spent in initializing the concurrent mark data structures.

This is because they are huge. It might be advantageous to

- try to allocate them more lazily so that not all memory (or reservation) is actually used). A large part of the heap consists of young gen, where no mark bitmap(s) are required.
Also, most likely, not all threads touch the bitmaps for all memory.

- allow better blocking of the data structures so that the can be (un-)committed more easily on a region basis.

- share some memory between threads after all (or only allow particular threads access to particular memory areas)

Comments
We can remove most of these data structures by being more clever about creating the liveness count data. See JDK-8077144 for more information.
14-03-2016

See the discussion in JDK-8077144 for more information and ideas.
03-03-2016