< prev index next >

src/share/vm/gc/cms/parNewGeneration.hpp

Print this page
rev 8461 : 8086056: ParNew: auto-tune ParGCCardsPerStrideChunk
Summary: Automatically calculate ParGCCardsPerStrideChunk based on the old gen capacity.
Reviewed-by:
rev 8409 : 8080879: Remove FlexibleWorkGang::set_for_termination
Reviewed-by: brutisso, kbarrett, pliden
rev 8396 : 8080110: Remove usage of CollectedHeap::n_par_threads() from root processing
Reviewed-by: jmasa, kbarrett
rev 8362 : 8079792: GC directory structure cleanup
Reviewed-by: brutisso, stefank, david


 328   // image.)  Manipulated with CAS.
 329   oop _overflow_list;
 330   NOT_PRODUCT(ssize_t _num_par_pushes;)
 331 
 332   // This closure is used by the reference processor to filter out
 333   // references to live referent.
 334   DefNewGeneration::IsAliveClosure _is_alive_closure;
 335 
 336   // GC tracer that should be used during collection.
 337   ParNewTracer _gc_tracer;
 338 
 339   static oop real_forwardee_slow(oop obj);
 340   static void waste_some_time();
 341 
 342   // Preserve the mark of "obj", if necessary, in preparation for its mark
 343   // word being overwritten with a self-forwarding-pointer.
 344   void preserve_mark_if_necessary(oop obj, markOop m);
 345 
 346   void handle_promotion_failed(GenCollectedHeap* gch, ParScanThreadStateSet& thread_state_set);
 347 
 348  protected:
 349 
 350   bool _survivor_overflow;
 351 
 352   bool survivor_overflow() { return _survivor_overflow; }
 353   void set_survivor_overflow(bool v) { _survivor_overflow = v; }
 354 








 355  public:
 356   ParNewGeneration(ReservedSpace rs, size_t initial_byte_size, int level);
 357 
 358   ~ParNewGeneration() {
 359     for (uint i = 0; i < ParallelGCThreads; i++)
 360         delete _task_queues->queue(i);
 361 
 362     delete _task_queues;
 363   }
 364 
 365   virtual void ref_processor_init();
 366   virtual Generation::Name kind()        { return Generation::ParNew; }
 367   virtual const char* name() const;
 368   virtual const char* short_name() const { return "ParNew"; }
 369 
 370   // override
 371   virtual bool refs_discovery_is_mt()     const {
 372     return ParallelGCThreads > 1;
 373   }
 374 




 328   // image.)  Manipulated with CAS.
 329   oop _overflow_list;
 330   NOT_PRODUCT(ssize_t _num_par_pushes;)
 331 
 332   // This closure is used by the reference processor to filter out
 333   // references to live referent.
 334   DefNewGeneration::IsAliveClosure _is_alive_closure;
 335 
 336   // GC tracer that should be used during collection.
 337   ParNewTracer _gc_tracer;
 338 
 339   static oop real_forwardee_slow(oop obj);
 340   static void waste_some_time();
 341 
 342   // Preserve the mark of "obj", if necessary, in preparation for its mark
 343   // word being overwritten with a self-forwarding-pointer.
 344   void preserve_mark_if_necessary(oop obj, markOop m);
 345 
 346   void handle_promotion_failed(GenCollectedHeap* gch, ParScanThreadStateSet& thread_state_set);
 347 


 348   bool _survivor_overflow;
 349 
 350   bool survivor_overflow() { return _survivor_overflow; }
 351   void set_survivor_overflow(bool v) { _survivor_overflow = v; }
 352 
 353   // true -> should automatically calculate ParGCCardsPerStrideChunk
 354   // before each young GC
 355   bool _should_adjust_cards_per_stride;
 356 
 357   // automatically calculate ParGCCardsPerStrideChunk based on the old
 358   // gen capacity before each young GC
 359   void adjust_cards_per_stride(const Generation& old_gen);
 360 
 361  public:
 362   ParNewGeneration(ReservedSpace rs, size_t initial_byte_size, int level);
 363 
 364   ~ParNewGeneration() {
 365     for (uint i = 0; i < ParallelGCThreads; i++)
 366         delete _task_queues->queue(i);
 367 
 368     delete _task_queues;
 369   }
 370 
 371   virtual void ref_processor_init();
 372   virtual Generation::Name kind()        { return Generation::ParNew; }
 373   virtual const char* name() const;
 374   virtual const char* short_name() const { return "ParNew"; }
 375 
 376   // override
 377   virtual bool refs_discovery_is_mt()     const {
 378     return ParallelGCThreads > 1;
 379   }
 380 


< prev index next >