< prev index next >

src/hotspot/share/memory/metaspace.cpp

Print this page
rev 51740 : 8210754: print_location is not reliable enough (printing register info)
Reviewed-by:


 846   bool mismatch = false;
 847   for (int i = 0; i < Metaspace::MetadataTypeCount; i ++) {
 848     Metaspace::MetadataType mdtype = (Metaspace::MetadataType)i;
 849     UsedChunksStatistics chunk_stat = total_stat.sm_stats(mdtype).totals();
 850     if (capacity_words(mdtype) != chunk_stat.cap() ||
 851         used_words(mdtype) != chunk_stat.used() ||
 852         overhead_words(mdtype) != chunk_stat.overhead()) {
 853       mismatch = true;
 854       tty->print_cr("MetaspaceUtils::verify_metrics: counter mismatch for mdtype=%u:", mdtype);
 855       tty->print_cr("Expected cap " SIZE_FORMAT ", used " SIZE_FORMAT ", overhead " SIZE_FORMAT ".",
 856                     capacity_words(mdtype), used_words(mdtype), overhead_words(mdtype));
 857       tty->print_cr("Got cap " SIZE_FORMAT ", used " SIZE_FORMAT ", overhead " SIZE_FORMAT ".",
 858                     chunk_stat.cap(), chunk_stat.used(), chunk_stat.overhead());
 859       tty->flush();
 860     }
 861   }
 862   assert(mismatch == false, "MetaspaceUtils::verify_metrics: counter mismatch.");
 863 #endif
 864 }
 865 




































 866 
 867 // Metaspace methods
 868 
 869 size_t Metaspace::_first_chunk_word_size = 0;
 870 size_t Metaspace::_first_class_chunk_word_size = 0;
 871 
 872 size_t Metaspace::_commit_alignment = 0;
 873 size_t Metaspace::_reserve_alignment = 0;
 874 
 875 VirtualSpaceList* Metaspace::_space_list = NULL;
 876 VirtualSpaceList* Metaspace::_class_space_list = NULL;
 877 
 878 ChunkManager* Metaspace::_chunk_manager_metadata = NULL;
 879 ChunkManager* Metaspace::_chunk_manager_class = NULL;
 880 
 881 #define VIRTUALSPACEMULTIPLIER 2
 882 
 883 #ifdef _LP64
 884 static const uint64_t UnscaledClassSpaceMax = (uint64_t(max_juint) + 1);
 885 




 846   bool mismatch = false;
 847   for (int i = 0; i < Metaspace::MetadataTypeCount; i ++) {
 848     Metaspace::MetadataType mdtype = (Metaspace::MetadataType)i;
 849     UsedChunksStatistics chunk_stat = total_stat.sm_stats(mdtype).totals();
 850     if (capacity_words(mdtype) != chunk_stat.cap() ||
 851         used_words(mdtype) != chunk_stat.used() ||
 852         overhead_words(mdtype) != chunk_stat.overhead()) {
 853       mismatch = true;
 854       tty->print_cr("MetaspaceUtils::verify_metrics: counter mismatch for mdtype=%u:", mdtype);
 855       tty->print_cr("Expected cap " SIZE_FORMAT ", used " SIZE_FORMAT ", overhead " SIZE_FORMAT ".",
 856                     capacity_words(mdtype), used_words(mdtype), overhead_words(mdtype));
 857       tty->print_cr("Got cap " SIZE_FORMAT ", used " SIZE_FORMAT ", overhead " SIZE_FORMAT ".",
 858                     chunk_stat.cap(), chunk_stat.used(), chunk_stat.overhead());
 859       tty->flush();
 860     }
 861   }
 862   assert(mismatch == false, "MetaspaceUtils::verify_metrics: counter mismatch.");
 863 #endif
 864 }
 865 
 866 // Utils to check if a pointer or range is part of a committed metaspace region.
 867 metaspace::VirtualSpaceNode* MetaspaceUtils::find_enclosing_virtual_space(const void* p) {
 868   VirtualSpaceNode* vsn = Metaspace::space_list()->find_enclosing_space(p);
 869   if (Metaspace::using_class_space() && vsn == NULL) {
 870     vsn = Metaspace::class_space_list()->find_enclosing_space(p);
 871   }
 872   return vsn;
 873 }
 874 
 875 bool MetaspaceUtils::is_in_committed(const void* p) {
 876 #if INCLUDE_CDS
 877   if (UseSharedSpaces) {
 878     for (int idx = MetaspaceShared::ro; idx <= MetaspaceShared::mc; idx++) {
 879       if (FileMapInfo::current_info()->is_in_shared_region(p, idx)) {
 880         return true;
 881       }
 882     }
 883   }
 884 #endif
 885   return find_enclosing_virtual_space(p) != NULL;
 886 }
 887 
 888 bool MetaspaceUtils::is_range_in_committed(const void* from, const void* to) {
 889 #if INCLUDE_CDS
 890   if (UseSharedSpaces) {
 891     for (int idx = MetaspaceShared::ro; idx <= MetaspaceShared::mc; idx++) {
 892       if (FileMapInfo::current_info()->is_in_shared_region(from, idx)) {
 893         return FileMapInfo::current_info()->is_in_shared_region(to, idx);
 894       }
 895     }
 896   }
 897 #endif
 898   VirtualSpaceNode* vsn = find_enclosing_virtual_space(from);
 899   return (vsn != NULL) && vsn->contains(to);
 900 }
 901 
 902 
 903 // Metaspace methods
 904 
 905 size_t Metaspace::_first_chunk_word_size = 0;
 906 size_t Metaspace::_first_class_chunk_word_size = 0;
 907 
 908 size_t Metaspace::_commit_alignment = 0;
 909 size_t Metaspace::_reserve_alignment = 0;
 910 
 911 VirtualSpaceList* Metaspace::_space_list = NULL;
 912 VirtualSpaceList* Metaspace::_class_space_list = NULL;
 913 
 914 ChunkManager* Metaspace::_chunk_manager_metadata = NULL;
 915 ChunkManager* Metaspace::_chunk_manager_class = NULL;
 916 
 917 #define VIRTUALSPACEMULTIPLIER 2
 918 
 919 #ifdef _LP64
 920 static const uint64_t UnscaledClassSpaceMax = (uint64_t(max_juint) + 1);
 921 


< prev index next >