739 // G1PrintReachableBaseFile + "." + str.
740 // vo decides whether the prev (vo == UsePrevMarking), the next
741 // (vo == UseNextMarking) marking information, or the mark word
742 // (vo == UseMarkWord) will be used to determine the liveness of
743 // each object / referent.
744 // If all is true, all objects in the heap will be dumped, otherwise
745 // only the live ones. In the dump the following symbols / breviations
746 // are used:
747 // M : an explicitly live object (its bitmap bit is set)
748 // > : an implicitly live object (over tams)
749 // O : an object outside the G1 heap (typically: in the perm gen)
750 // NOT : a reference field whose referent is not live
751 // AND MARKED : indicates that an object is both explicitly and
752 // implicitly live (it should be one or the other, not both)
753 void print_reachable(const char* str,
754 VerifyOption vo, bool all) PRODUCT_RETURN;
755
756 // Clear the next marking bitmap (will be called concurrently).
757 void clearNextBitmap();
758
759 // main CMS steps and related support
760 void checkpointRootsInitial();
761
762 // These two do the work that needs to be done before and after the
763 // initial root checkpoint. Since this checkpoint can be done at two
764 // different points (i.e. an explicit pause or piggy-backed on a
765 // young collection), then it's nice to be able to easily share the
766 // pre/post code. It might be the case that we can put everything in
767 // the post method. TP
768 void checkpointRootsInitialPre();
769 void checkpointRootsInitialPost();
770
771 // Do concurrent phase of marking, to a tentative transitive closure.
772 void markFromRoots();
773
774 // Process all unprocessed SATB buffers. It is called at the
775 // beginning of an evacuation pause.
776 void drainAllSATBBuffers();
777
778 void checkpointRootsFinal(bool clear_all_soft_refs);
779 void checkpointRootsFinalWork();
780 void calcDesiredRegions();
781 void cleanup();
|
739 // G1PrintReachableBaseFile + "." + str.
740 // vo decides whether the prev (vo == UsePrevMarking), the next
741 // (vo == UseNextMarking) marking information, or the mark word
742 // (vo == UseMarkWord) will be used to determine the liveness of
743 // each object / referent.
744 // If all is true, all objects in the heap will be dumped, otherwise
745 // only the live ones. In the dump the following symbols / breviations
746 // are used:
747 // M : an explicitly live object (its bitmap bit is set)
748 // > : an implicitly live object (over tams)
749 // O : an object outside the G1 heap (typically: in the perm gen)
750 // NOT : a reference field whose referent is not live
751 // AND MARKED : indicates that an object is both explicitly and
752 // implicitly live (it should be one or the other, not both)
753 void print_reachable(const char* str,
754 VerifyOption vo, bool all) PRODUCT_RETURN;
755
756 // Clear the next marking bitmap (will be called concurrently).
757 void clearNextBitmap();
758
759 // These two do the work that needs to be done before and after the
760 // initial root checkpoint. Since this checkpoint can be done at two
761 // different points (i.e. an explicit pause or piggy-backed on a
762 // young collection), then it's nice to be able to easily share the
763 // pre/post code. It might be the case that we can put everything in
764 // the post method. TP
765 void checkpointRootsInitialPre();
766 void checkpointRootsInitialPost();
767
768 // Do concurrent phase of marking, to a tentative transitive closure.
769 void markFromRoots();
770
771 // Process all unprocessed SATB buffers. It is called at the
772 // beginning of an evacuation pause.
773 void drainAllSATBBuffers();
774
775 void checkpointRootsFinal(bool clear_all_soft_refs);
776 void checkpointRootsFinalWork();
777 void calcDesiredRegions();
778 void cleanup();
|