< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp

Print this page
rev 58162 : 8237632: Shenandoah fails some vmTestbase_nsk_jvmti tests with "Forwardee must point to a heap address"


 256 typedef ShenandoahRootScanner<ShenandoahCsetCodeRootsIterator> ShenandoahCSetRootScanner;
 257 
 258 // This scanner is only for SH::object_iteration() and only supports single-threaded
 259 // root scanning
 260 class ShenandoahHeapIterationRootScanner : public ShenandoahRootProcessor {
 261 private:
 262   ShenandoahSerialRoots                                    _serial_roots;
 263   ShenandoahThreadRoots                                    _thread_roots;
 264   ShenandoahVMRoots<false /*concurrent*/>                  _vm_roots;
 265   ShenandoahClassLoaderDataRoots<false /*concurrent*/, true /*single threaded*/>
 266                                                            _cld_roots;
 267   ShenandoahSerialWeakRoots                                _serial_weak_roots;
 268   ShenandoahWeakRoots<false /*concurrent*/>                _weak_roots;
 269   ShenandoahConcurrentStringDedupRoots                     _dedup_roots;
 270   ShenandoahCodeCacheRoots<ShenandoahAllCodeRootsIterator> _code_roots;
 271 
 272 public:
 273   ShenandoahHeapIterationRootScanner();
 274 
 275   void roots_do(OopClosure* cl);
 276   void strong_roots_do(OopClosure* cl);
 277 };
 278 
 279 // Evacuate all roots at a safepoint
 280 class ShenandoahRootEvacuator : public ShenandoahRootProcessor {
 281 private:
 282   ShenandoahSerialRoots                                     _serial_roots;
 283   ShenandoahVMRoots<false /*concurrent*/>                   _vm_roots;
 284   ShenandoahClassLoaderDataRoots<false /*concurrent*/, false /*single threaded*/>
 285                                                             _cld_roots;
 286   ShenandoahThreadRoots                                     _thread_roots;
 287   ShenandoahSerialWeakRoots                                 _serial_weak_roots;
 288   ShenandoahWeakRoots<false /*concurrent*/>                 _weak_roots;
 289   ShenandoahStringDedupRoots                                _dedup_roots;
 290   ShenandoahCodeCacheRoots<ShenandoahAllCodeRootsIterator>  _code_roots;
 291   bool                                                      _include_concurrent_roots;
 292   bool                                                      _include_concurrent_code_roots;
 293 public:
 294   ShenandoahRootEvacuator(uint n_workers, ShenandoahPhaseTimings::Phase phase,
 295                           bool include_concurrent_roots, bool _include_concurrent_code_roots);
 296 




 256 typedef ShenandoahRootScanner<ShenandoahCsetCodeRootsIterator> ShenandoahCSetRootScanner;
 257 
 258 // This scanner is only for SH::object_iteration() and only supports single-threaded
 259 // root scanning
 260 class ShenandoahHeapIterationRootScanner : public ShenandoahRootProcessor {
 261 private:
 262   ShenandoahSerialRoots                                    _serial_roots;
 263   ShenandoahThreadRoots                                    _thread_roots;
 264   ShenandoahVMRoots<false /*concurrent*/>                  _vm_roots;
 265   ShenandoahClassLoaderDataRoots<false /*concurrent*/, true /*single threaded*/>
 266                                                            _cld_roots;
 267   ShenandoahSerialWeakRoots                                _serial_weak_roots;
 268   ShenandoahWeakRoots<false /*concurrent*/>                _weak_roots;
 269   ShenandoahConcurrentStringDedupRoots                     _dedup_roots;
 270   ShenandoahCodeCacheRoots<ShenandoahAllCodeRootsIterator> _code_roots;
 271 
 272 public:
 273   ShenandoahHeapIterationRootScanner();
 274 
 275   void roots_do(OopClosure* cl);

 276 };
 277 
 278 // Evacuate all roots at a safepoint
 279 class ShenandoahRootEvacuator : public ShenandoahRootProcessor {
 280 private:
 281   ShenandoahSerialRoots                                     _serial_roots;
 282   ShenandoahVMRoots<false /*concurrent*/>                   _vm_roots;
 283   ShenandoahClassLoaderDataRoots<false /*concurrent*/, false /*single threaded*/>
 284                                                             _cld_roots;
 285   ShenandoahThreadRoots                                     _thread_roots;
 286   ShenandoahSerialWeakRoots                                 _serial_weak_roots;
 287   ShenandoahWeakRoots<false /*concurrent*/>                 _weak_roots;
 288   ShenandoahStringDedupRoots                                _dedup_roots;
 289   ShenandoahCodeCacheRoots<ShenandoahAllCodeRootsIterator>  _code_roots;
 290   bool                                                      _include_concurrent_roots;
 291   bool                                                      _include_concurrent_code_roots;
 292 public:
 293   ShenandoahRootEvacuator(uint n_workers, ShenandoahPhaseTimings::Phase phase,
 294                           bool include_concurrent_roots, bool _include_concurrent_code_roots);
 295 


< prev index next >