320 range(0, 256) \
321 \
322 experimental(uintx, ShenandoahMarkLoopStride, 1000, \
323 "How many items are processed during one marking step") \
324 \
325 experimental(uintx, ShenandoahParallelRegionStride, 1024, \
326 "How many regions are processed in one stride during parallel " \
327 "iteration.") \
328 \
329 experimental(size_t, ShenandoahSATBBufferSize, 1 * K, \
330 "Number of entries in an SATB log buffer.") \
331 range(1, max_uintx) \
332 \
333 experimental(uintx, ShenandoahSATBBufferFlushInterval, 100, \
334 "Forcefully flush non-empty SATB buffers at this interval. " \
335 "Time is in milliseconds.") \
336 \
337 experimental(uint, ShenandoahParallelSafepointThreads, 4, \
338 "Number of parallel threads used for safepoint prolog/epilog") \
339 \
340 experimental(bool, ShenandoahPreclean, true, \
341 "Do concurrent preclean phase before final mark: process " \
342 "definitely alive references to avoid dealing with them during " \
343 "pause.") \
344 \
345 experimental(bool, ShenandoahSuspendibleWorkers, false, \
346 "Suspend concurrent GC worker threads at safepoints") \
347 \
348 diagnostic(bool, ShenandoahSATBBarrier, true, \
349 "Turn on/off SATB barriers in Shenandoah") \
350 \
351 diagnostic(bool, ShenandoahKeepAliveBarrier, true, \
352 "Turn on/off keep alive barriers in Shenandoah") \
353 \
354 diagnostic(bool, ShenandoahStoreValEnqueueBarrier, false, \
355 "Turn on/off enqueuing of oops for storeval barriers") \
356 \
357 diagnostic(bool, ShenandoahCASBarrier, true, \
358 "Turn on/off CAS barriers in Shenandoah") \
359 \
360 diagnostic(bool, ShenandoahCloneBarrier, true, \
361 "Turn on/off clone barriers in Shenandoah") \
362 \
363 diagnostic(bool, ShenandoahLoadRefBarrier, true, \
364 "Turn on/off load-reference barriers in Shenandoah") \
365 \
366 experimental(bool, ShenandoahConcurrentScanCodeRoots, true, \
367 "Scan code roots concurrently, instead of during a pause") \
368 \
369 experimental(uintx, ShenandoahCodeRootsStyle, 2, \
370 "Use this style to scan code cache:" \
371 " 0 - sequential iterator;" \
372 " 1 - parallel iterator;" \
373 " 2 - parallel iterator with cset filters;") \
374 \
375 diagnostic(bool, ShenandoahOptimizeStaticFinals, true, \
376 "Optimize barriers on static final fields. " \
377 "Turn it off for maximum compatibility with reflection or JNI " \
378 "code that manipulates final fields.") \
379 \
380 experimental(bool, ShenandoahCommonGCStateLoads, false, \
381 "Enable commonming for GC state loads in generated code.") \
382 \
383 develop(bool, ShenandoahVerifyOptoBarriers, false, \
384 "Verify no missing barriers in C2") \
385 \
386 experimental(bool, ShenandoahLoopOptsAfterExpansion, true, \
387 "Attempt more loop opts after barrier expansion") \
388 \
389 diagnostic(bool, ShenandoahSelfFixing, true, \
390 "Fix references with load reference barrier. Disabling this " \
391 "might degrade performance.") \
392
393
394 #endif // SHARE_GC_SHENANDOAH_SHENANDOAH_GLOBALS_HPP
|
320 range(0, 256) \
321 \
322 experimental(uintx, ShenandoahMarkLoopStride, 1000, \
323 "How many items are processed during one marking step") \
324 \
325 experimental(uintx, ShenandoahParallelRegionStride, 1024, \
326 "How many regions are processed in one stride during parallel " \
327 "iteration.") \
328 \
329 experimental(size_t, ShenandoahSATBBufferSize, 1 * K, \
330 "Number of entries in an SATB log buffer.") \
331 range(1, max_uintx) \
332 \
333 experimental(uintx, ShenandoahSATBBufferFlushInterval, 100, \
334 "Forcefully flush non-empty SATB buffers at this interval. " \
335 "Time is in milliseconds.") \
336 \
337 experimental(uint, ShenandoahParallelSafepointThreads, 4, \
338 "Number of parallel threads used for safepoint prolog/epilog") \
339 \
340 diagnostic(bool, ShenandoahPreclean, true, \
341 "Do concurrent preclean phase before final mark: process " \
342 "definitely alive references to avoid dealing with them during " \
343 "pause.") \
344 \
345 experimental(bool, ShenandoahSuspendibleWorkers, false, \
346 "Suspend concurrent GC worker threads at safepoints") \
347 \
348 diagnostic(bool, ShenandoahSATBBarrier, true, \
349 "Turn on/off SATB barriers in Shenandoah") \
350 \
351 diagnostic(bool, ShenandoahKeepAliveBarrier, true, \
352 "Turn on/off keep alive barriers in Shenandoah") \
353 \
354 diagnostic(bool, ShenandoahStoreValEnqueueBarrier, false, \
355 "Turn on/off enqueuing of oops for storeval barriers") \
356 \
357 diagnostic(bool, ShenandoahCASBarrier, true, \
358 "Turn on/off CAS barriers in Shenandoah") \
359 \
360 diagnostic(bool, ShenandoahCloneBarrier, true, \
361 "Turn on/off clone barriers in Shenandoah") \
362 \
363 diagnostic(bool, ShenandoahLoadRefBarrier, true, \
364 "Turn on/off load-reference barriers in Shenandoah") \
365 \
366 diagnostic(bool, ShenandoahConcurrentScanCodeRoots, true, \
367 "Scan code roots concurrently, instead of during a pause") \
368 \
369 diagnostic(uintx, ShenandoahCodeRootsStyle, 2, \
370 "Use this style to scan code cache:" \
371 " 0 - sequential iterator;" \
372 " 1 - parallel iterator;" \
373 " 2 - parallel iterator with cset filters;") \
374 \
375 diagnostic(bool, ShenandoahOptimizeStaticFinals, true, \
376 "Optimize barriers on static final fields. " \
377 "Turn it off for maximum compatibility with reflection or JNI " \
378 "code that manipulates final fields.") \
379 \
380 experimental(bool, ShenandoahCommonGCStateLoads, false, \
381 "Enable commonming for GC state loads in generated code.") \
382 \
383 develop(bool, ShenandoahVerifyOptoBarriers, false, \
384 "Verify no missing barriers in C2") \
385 \
386 diagnostic(bool, ShenandoahLoopOptsAfterExpansion, true, \
387 "Attempt more loop opts after barrier expansion") \
388 \
389 diagnostic(bool, ShenandoahSelfFixing, true, \
390 "Fix references with load reference barrier. Disabling this " \
391 "might degrade performance.") \
392
393
394 #endif // SHARE_GC_SHENANDOAH_SHENANDOAH_GLOBALS_HPP
|