hotspot/src/share/vm/memory/metaspaceShared.cpp
changeset 18483 c021907fa0a7
parent 17858 c292f8791cca
child 19319 0ad35be0733a
equal deleted inserted replaced
18482:b0b250bf0b02 18483:c021907fa0a7
   824   }
   824   }
   825 
   825 
   826   bool reading() const { return true; }
   826   bool reading() const { return true; }
   827 };
   827 };
   828 
   828 
   829 
       
   830 // Save bounds of shared spaces mapped in.
       
   831 static char* _ro_base = NULL;
       
   832 static char* _rw_base = NULL;
       
   833 static char* _md_base = NULL;
       
   834 static char* _mc_base = NULL;
       
   835 
       
   836 // Return true if given address is in the mapped shared space.
   829 // Return true if given address is in the mapped shared space.
   837 bool MetaspaceShared::is_in_shared_space(const void* p) {
   830 bool MetaspaceShared::is_in_shared_space(const void* p) {
   838   if (_ro_base == NULL || _rw_base == NULL) {
   831   return UseSharedSpaces && FileMapInfo::current_info()->is_in_shared_space(p);
   839     return false;
       
   840   } else {
       
   841     return ((p >= _ro_base && p < (_ro_base + SharedReadOnlySize)) ||
       
   842             (p >= _rw_base && p < (_rw_base + SharedReadWriteSize)));
       
   843   }
       
   844 }
   832 }
   845 
   833 
   846 void MetaspaceShared::print_shared_spaces() {
   834 void MetaspaceShared::print_shared_spaces() {
   847   gclog_or_tty->print_cr("Shared Spaces:");
   835   if (UseSharedSpaces) {
   848   gclog_or_tty->print("  read-only " INTPTR_FORMAT "-" INTPTR_FORMAT,
   836     FileMapInfo::current_info()->print_shared_spaces();
   849     _ro_base, _ro_base + SharedReadOnlySize);
   837   }
   850   gclog_or_tty->print("  read-write " INTPTR_FORMAT "-" INTPTR_FORMAT,
       
   851     _rw_base, _rw_base + SharedReadWriteSize);
       
   852   gclog_or_tty->cr();
       
   853   gclog_or_tty->print("  misc-data " INTPTR_FORMAT "-" INTPTR_FORMAT,
       
   854     _md_base, _md_base + SharedMiscDataSize);
       
   855   gclog_or_tty->print("  misc-code " INTPTR_FORMAT "-" INTPTR_FORMAT,
       
   856     _mc_base, _mc_base + SharedMiscCodeSize);
       
   857   gclog_or_tty->cr();
       
   858 }
   838 }
   859 
   839 
   860 
   840 
   861 // Map shared spaces at requested addresses and return if succeeded.
   841 // Map shared spaces at requested addresses and return if succeeded.
   862 // Need to keep the bounds of the ro and rw space for the Metaspace::contains
   842 // Need to keep the bounds of the ro and rw space for the Metaspace::contains
   871   ReservedSpace shared_rs = mapinfo->reserve_shared_memory();
   851   ReservedSpace shared_rs = mapinfo->reserve_shared_memory();
   872   if (!shared_rs.is_reserved()) return false;
   852   if (!shared_rs.is_reserved()) return false;
   873 #endif
   853 #endif
   874 
   854 
   875   assert(!DumpSharedSpaces, "Should not be called with DumpSharedSpaces");
   855   assert(!DumpSharedSpaces, "Should not be called with DumpSharedSpaces");
       
   856 
       
   857   char* _ro_base = NULL;
       
   858   char* _rw_base = NULL;
       
   859   char* _md_base = NULL;
       
   860   char* _mc_base = NULL;
   876 
   861 
   877   // Map each shared region
   862   // Map each shared region
   878   if ((_ro_base = mapinfo->map_region(ro)) != NULL &&
   863   if ((_ro_base = mapinfo->map_region(ro)) != NULL &&
   879       (_rw_base = mapinfo->map_region(rw)) != NULL &&
   864       (_rw_base = mapinfo->map_region(rw)) != NULL &&
   880       (_md_base = mapinfo->map_region(md)) != NULL &&
   865       (_md_base = mapinfo->map_region(md)) != NULL &&