509 // Clear the card table corresponding to this region.
510 void clear_cardtable();
511
512 // Get the start of the unmarked area in this region.
513 HeapWord* prev_top_at_mark_start() const { return _prev_top_at_mark_start; }
514 HeapWord* next_top_at_mark_start() const { return _next_top_at_mark_start; }
515
516 // Note the start or end of marking. This tells the heap region
517 // that the collector is about to start or has finished (concurrently)
518 // marking the heap.
519
520 // Notify the region that concurrent marking is starting. Initialize
521 // all fields related to the next marking info.
522 inline void note_start_of_marking();
523
524 // Notify the region that concurrent marking has finished. Copy the
525 // (now finalized) next marking info fields into the prev marking
526 // info fields.
527 inline void note_end_of_marking();
528
529 // Notify the region that it will be used as to-space during a GC
530 // and we are about to start copying objects into it.
531 inline void note_start_of_copying(bool during_initial_mark);
532
533 // Notify the region that it ceases being to-space during a GC and
534 // we will not copy objects into it any more.
535 inline void note_end_of_copying(bool during_initial_mark);
536
537 // Notify the region that we are about to start processing
538 // self-forwarded objects during evac failure handling.
539 void note_self_forwarding_removal_start(bool during_initial_mark,
540 bool during_conc_mark);
541
542 // Notify the region that we have finished processing self-forwarded
543 // objects during evac failure handling.
544 void note_self_forwarding_removal_end(size_t marked_bytes);
545
546 void reset_during_compaction() {
547 assert(is_humongous(),
548 "should only be called for humongous regions");
549
550 zero_marked_bytes();
551 init_top_at_mark_start();
552 }
553
554 void calc_gc_efficiency(void);
555 double gc_efficiency() { return _gc_efficiency;}
556
|
509 // Clear the card table corresponding to this region.
510 void clear_cardtable();
511
512 // Get the start of the unmarked area in this region.
513 HeapWord* prev_top_at_mark_start() const { return _prev_top_at_mark_start; }
514 HeapWord* next_top_at_mark_start() const { return _next_top_at_mark_start; }
515
516 // Note the start or end of marking. This tells the heap region
517 // that the collector is about to start or has finished (concurrently)
518 // marking the heap.
519
520 // Notify the region that concurrent marking is starting. Initialize
521 // all fields related to the next marking info.
522 inline void note_start_of_marking();
523
524 // Notify the region that concurrent marking has finished. Copy the
525 // (now finalized) next marking info fields into the prev marking
526 // info fields.
527 inline void note_end_of_marking();
528
529 // Notify the region that we are about to start processing
530 // self-forwarded objects during evac failure handling.
531 void note_self_forwarding_removal_start(bool during_initial_mark,
532 bool during_conc_mark);
533
534 // Notify the region that we have finished processing self-forwarded
535 // objects during evac failure handling.
536 void note_self_forwarding_removal_end(size_t marked_bytes);
537
538 void reset_during_compaction() {
539 assert(is_humongous(),
540 "should only be called for humongous regions");
541
542 zero_marked_bytes();
543 init_top_at_mark_start();
544 }
545
546 void calc_gc_efficiency(void);
547 double gc_efficiency() { return _gc_efficiency;}
548
|