comparison src/share/vm/includeDB_core @ 1716:be3f9c242c9d

6948538: CMS: BOT walkers can fall into object allocation and initialization cracks Summary: GC workers now recognize an intermediate transient state of blocks which are allocated but have not yet completed initialization. blk_start() calls do not attempt to determine the size of a block in the transient state, rather waiting for the block to become initialized so that it is safe to query its size. Audited and ensured the order of initialization of object fields (klass, free bit and size) to respect block state transition protocol. Also included some new assertion checking code enabled in debug mode. Reviewed-by: chrisphi, johnc, poonam
author ysr
date Mon, 16 Aug 2010 15:58:42 -0700
parents 126ea7725993
children d5d065957597 8b10f48633dc
comparison
equal deleted inserted replaced
1713:7fcd5f39bd7a 1716:be3f9c242c9d
223 arrayOop.cpp objArrayOop.hpp 223 arrayOop.cpp objArrayOop.hpp
224 arrayOop.cpp oop.inline.hpp 224 arrayOop.cpp oop.inline.hpp
225 arrayOop.cpp symbolOop.hpp 225 arrayOop.cpp symbolOop.hpp
226 226
227 arrayOop.hpp oop.hpp 227 arrayOop.hpp oop.hpp
228 arrayOop.hpp universe.hpp
229 arrayOop.hpp universe.inline.hpp 228 arrayOop.hpp universe.inline.hpp
230 229
231 assembler.cpp assembler.hpp 230 assembler.cpp assembler.hpp
232 assembler.cpp assembler.inline.hpp 231 assembler.cpp assembler.inline.hpp
233 assembler.cpp assembler_<arch>.inline.hpp 232 assembler.cpp assembler_<arch>.inline.hpp
234 assembler.cpp codeBuffer.hpp 233 assembler.cpp codeBuffer.hpp
235 assembler.cpp icache.hpp 234 assembler.cpp icache.hpp
236 assembler.cpp os.hpp 235 assembler.cpp os.hpp
237 236
238 assembler.hpp allocation.hpp 237 assembler.hpp allocation.hpp
239 assembler.hpp allocation.inline.hpp
240 assembler.hpp debug.hpp 238 assembler.hpp debug.hpp
241 assembler.hpp growableArray.hpp 239 assembler.hpp growableArray.hpp
242 assembler.hpp oopRecorder.hpp 240 assembler.hpp oopRecorder.hpp
243 assembler.hpp register_<arch>.hpp 241 assembler.hpp register_<arch>.hpp
244 assembler.hpp relocInfo.hpp 242 assembler.hpp relocInfo.hpp
328 blockOffsetTable.cpp blockOffsetTable.inline.hpp 326 blockOffsetTable.cpp blockOffsetTable.inline.hpp
329 blockOffsetTable.cpp collectedHeap.inline.hpp 327 blockOffsetTable.cpp collectedHeap.inline.hpp
330 blockOffsetTable.cpp iterator.hpp 328 blockOffsetTable.cpp iterator.hpp
331 blockOffsetTable.cpp java.hpp 329 blockOffsetTable.cpp java.hpp
332 blockOffsetTable.cpp oop.inline.hpp 330 blockOffsetTable.cpp oop.inline.hpp
333 blockOffsetTable.cpp space.hpp 331 blockOffsetTable.cpp space.inline.hpp
334 blockOffsetTable.cpp universe.hpp 332 blockOffsetTable.cpp universe.hpp
335 333
336 blockOffsetTable.hpp globalDefinitions.hpp 334 blockOffsetTable.hpp globalDefinitions.hpp
337 blockOffsetTable.hpp memRegion.hpp 335 blockOffsetTable.hpp memRegion.hpp
338 blockOffsetTable.hpp virtualspace.hpp 336 blockOffsetTable.hpp virtualspace.hpp
339 337
340 blockOffsetTable.inline.hpp blockOffsetTable.hpp 338 blockOffsetTable.inline.hpp blockOffsetTable.hpp
339 blockOffsetTable.inline.hpp safepoint.hpp
341 blockOffsetTable.inline.hpp space.hpp 340 blockOffsetTable.inline.hpp space.hpp
342 341
343 bytecode.cpp bytecode.hpp 342 bytecode.cpp bytecode.hpp
344 bytecode.cpp constantPoolOop.hpp 343 bytecode.cpp constantPoolOop.hpp
345 bytecode.cpp fieldType.hpp 344 bytecode.cpp fieldType.hpp
1805 generateOopMap.hpp oopsHierarchy.hpp 1804 generateOopMap.hpp oopsHierarchy.hpp
1806 generateOopMap.hpp signature.hpp 1805 generateOopMap.hpp signature.hpp
1807 generateOopMap.hpp universe.inline.hpp 1806 generateOopMap.hpp universe.inline.hpp
1808 1807
1809 generation.cpp allocation.inline.hpp 1808 generation.cpp allocation.inline.hpp
1810 generation.cpp blockOffsetTable.hpp 1809 generation.cpp blockOffsetTable.inline.hpp
1811 generation.cpp cardTableRS.hpp 1810 generation.cpp cardTableRS.hpp
1812 generation.cpp collectedHeap.inline.hpp 1811 generation.cpp collectedHeap.inline.hpp
1813 generation.cpp copy.hpp 1812 generation.cpp copy.hpp
1814 generation.cpp events.hpp 1813 generation.cpp events.hpp
1815 generation.cpp gcLocker.inline.hpp 1814 generation.cpp gcLocker.inline.hpp
3434 perfMemory_<os_family>.cpp os_<os_family>.inline.hpp 3433 perfMemory_<os_family>.cpp os_<os_family>.inline.hpp
3435 perfMemory_<os_family>.cpp perfMemory.hpp 3434 perfMemory_<os_family>.cpp perfMemory.hpp
3436 perfMemory_<os_family>.cpp resourceArea.hpp 3435 perfMemory_<os_family>.cpp resourceArea.hpp
3437 perfMemory_<os_family>.cpp vmSymbols.hpp 3436 perfMemory_<os_family>.cpp vmSymbols.hpp
3438 3437
3439 permGen.cpp blockOffsetTable.hpp 3438 permGen.cpp blockOffsetTable.inline.hpp
3440 permGen.cpp cSpaceCounters.hpp 3439 permGen.cpp cSpaceCounters.hpp
3441 permGen.cpp collectedHeap.inline.hpp 3440 permGen.cpp collectedHeap.inline.hpp
3442 permGen.cpp compactPermGen.hpp 3441 permGen.cpp compactPermGen.hpp
3443 permGen.cpp genCollectedHeap.hpp 3442 permGen.cpp genCollectedHeap.hpp
3444 permGen.cpp generation.inline.hpp 3443 permGen.cpp generation.inline.hpp
3803 sizes.cpp sizes.hpp 3802 sizes.cpp sizes.hpp
3804 3803
3805 sizes.hpp allocation.hpp 3804 sizes.hpp allocation.hpp
3806 sizes.hpp globalDefinitions.hpp 3805 sizes.hpp globalDefinitions.hpp
3807 3806
3808 space.cpp blockOffsetTable.hpp 3807 space.cpp blockOffsetTable.inline.hpp
3809 space.cpp copy.hpp 3808 space.cpp copy.hpp
3810 space.cpp defNewGeneration.hpp 3809 space.cpp defNewGeneration.hpp
3811 space.cpp genCollectedHeap.hpp 3810 space.cpp genCollectedHeap.hpp
3812 space.cpp globalDefinitions.hpp 3811 space.cpp globalDefinitions.hpp
3813 space.cpp java.hpp 3812 space.cpp java.hpp
3833 space.hpp os_<os_family>.inline.hpp 3832 space.hpp os_<os_family>.inline.hpp
3834 space.hpp prefetch.hpp 3833 space.hpp prefetch.hpp
3835 space.hpp watermark.hpp 3834 space.hpp watermark.hpp
3836 space.hpp workgroup.hpp 3835 space.hpp workgroup.hpp
3837 3836
3838 space.inline.hpp blockOffsetTable.inline.hpp
3839 space.inline.hpp collectedHeap.hpp 3837 space.inline.hpp collectedHeap.hpp
3840 space.inline.hpp safepoint.hpp 3838 space.inline.hpp safepoint.hpp
3841 space.inline.hpp space.hpp 3839 space.inline.hpp space.hpp
3842 space.inline.hpp universe.hpp 3840 space.inline.hpp universe.hpp
3843 3841