--- old/src/share/vm/gc/g1/g1ConcurrentMark.hpp 2016-09-14 14:48:25.867549801 +0200 +++ new/src/share/vm/gc/g1/g1ConcurrentMark.hpp 2016-09-14 14:48:25.728545499 +0200 @@ -181,7 +181,8 @@ OopChunk* volatile _free_list; // Linked list of free chunks that can be allocated by users. char _pad1[DEFAULT_CACHE_LINE_SIZE - sizeof(OopChunk*)]; OopChunk* volatile _chunk_list; // List of chunks currently containing data. - char _pad2[DEFAULT_CACHE_LINE_SIZE - sizeof(OopChunk*)]; + volatile size_t _chunks_in_chunk_list; + char _pad2[DEFAULT_CACHE_LINE_SIZE - sizeof(OopChunk*) - sizeof(size_t)]; volatile size_t _hwm; // High water mark within the reserved space. char _pad4[DEFAULT_CACHE_LINE_SIZE - sizeof(size_t)]; @@ -190,8 +191,6 @@ // NULL if out of memory. OopChunk* allocate_new_chunk(); - volatile size_t _chunks_in_chunk_list; - volatile bool _out_of_memory; // Atomically add the given chunk to the list.