Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp @ 20760:6e56d7f1634f jdk8u31-b05
8026303: CMS: JVM intermittently crashes with "FreeList of size 258 violates Conservation Principle" assert
Reviewed-by: tschatzl, brutisso
author | jmasa |
---|---|
date | Thu, 21 Nov 2013 09:57:00 -0800 |
parents | 78bbf4d43a14 |
children | c2844108a708 |
comparison
equal
deleted
inserted
replaced
20759:4b26b980ec8d | 20760:6e56d7f1634f |
---|---|
169 // adds them to "fl", which is required to be an empty free list. | 169 // adds them to "fl", which is required to be an empty free list. |
170 // If the count of "fl" is negative, it's absolute value indicates a | 170 // If the count of "fl" is negative, it's absolute value indicates a |
171 // number of free chunks that had been previously "borrowed" from global | 171 // number of free chunks that had been previously "borrowed" from global |
172 // list of size "word_sz", and must now be decremented. | 172 // list of size "word_sz", and must now be decremented. |
173 void par_get_chunk_of_blocks(size_t word_sz, size_t n, AdaptiveFreeList<FreeChunk>* fl); | 173 void par_get_chunk_of_blocks(size_t word_sz, size_t n, AdaptiveFreeList<FreeChunk>* fl); |
174 | |
175 // Used by par_get_chunk_of_blocks() for the chunks from the | |
176 // indexed_free_lists. | |
177 bool par_get_chunk_of_blocks_IFL(size_t word_sz, size_t n, AdaptiveFreeList<FreeChunk>* fl); | |
178 | |
179 // Used by par_get_chunk_of_blocks_dictionary() to get a chunk | |
180 // evenly splittable into "n" "word_sz" chunks. Returns that | |
181 // evenly splittable chunk. May split a larger chunk to get the | |
182 // evenly splittable chunk. | |
183 FreeChunk* get_n_way_chunk_to_split(size_t word_sz, size_t n); | |
184 | |
185 // Used by par_get_chunk_of_blocks() for the chunks from the | |
186 // dictionary. | |
187 void par_get_chunk_of_blocks_dictionary(size_t word_sz, size_t n, AdaptiveFreeList<FreeChunk>* fl); | |
174 | 188 |
175 // Allocation helper functions | 189 // Allocation helper functions |
176 // Allocate using a strategy that takes from the indexed free lists | 190 // Allocate using a strategy that takes from the indexed free lists |
177 // first. This allocation strategy assumes a companion sweeping | 191 // first. This allocation strategy assumes a companion sweeping |
178 // strategy that attempts to keep the needed number of chunks in each | 192 // strategy that attempts to keep the needed number of chunks in each |