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