7196298: Better fix for 7195789

Thu, 06 Sep 2012 07:28:30 -0700

author
jmasa
date
Thu, 06 Sep 2012 07:28:30 -0700
changeset 4046
942bb29b20b0
parent 4045
fa6e618671d7
child 4047
aed758eda82a

7196298: Better fix for 7195789
Reviewed-by: jcoomes, brutisso

src/share/vm/memory/metaspace.cpp file | annotate | diff | comparison | revisions
src/share/vm/memory/metaspace.hpp file | annotate | diff | comparison | revisions
src/share/vm/memory/metaspaceCounters.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/memory/metaspace.cpp	Wed Sep 05 20:08:08 2012 -0400
     1.2 +++ b/src/share/vm/memory/metaspace.cpp	Thu Sep 06 07:28:30 2012 -0700
     1.3 @@ -2541,7 +2541,7 @@
     1.4  
     1.5  // MetaspaceAux
     1.6  
     1.7 -size_t MetaspaceAux::used_in_bytes_unsafe(Metaspace::MetadataType mdtype) {
     1.8 +size_t MetaspaceAux::used_in_bytes(Metaspace::MetadataType mdtype) {
     1.9    size_t used = 0;
    1.10    ClassLoaderDataGraphMetaspaceIterator iter;
    1.11    while (iter.repeat()) {
    1.12 @@ -2554,33 +2554,6 @@
    1.13    return used * BytesPerWord;
    1.14  }
    1.15  
    1.16 -size_t MetaspaceAux::used_in_bytes(Metaspace::MetadataType mdtype) {
    1.17 -  assert(SafepointSynchronize::is_at_safepoint(),
    1.18 -    "Consistency checks require being at a safepoint");
    1.19 -  size_t used = 0;
    1.20 -#ifdef ASSERT
    1.21 -  size_t free = 0;
    1.22 -  size_t capacity = 0;
    1.23 -#endif
    1.24 -  ClassLoaderDataGraphMetaspaceIterator iter;
    1.25 -  while (iter.repeat()) {
    1.26 -    Metaspace* msp = iter.get_next();
    1.27 -    // Sum allocation_total for each metaspace
    1.28 -    if (msp != NULL) {
    1.29 -      used += msp->used_words(mdtype);
    1.30 -#ifdef ASSERT
    1.31 -      free += msp->free_words(mdtype);
    1.32 -      capacity += msp->capacity_words(mdtype);
    1.33 -      assert(used + free == capacity,
    1.34 -        err_msg("Accounting is wrong used " SIZE_FORMAT
    1.35 -                " free " SIZE_FORMAT " capacity " SIZE_FORMAT,
    1.36 -                used, free, capacity));
    1.37 -#endif
    1.38 -    }
    1.39 -  }
    1.40 -  return used * BytesPerWord;
    1.41 -}
    1.42 -
    1.43  size_t MetaspaceAux::free_in_bytes(Metaspace::MetadataType mdtype) {
    1.44    size_t free = 0;
    1.45    ClassLoaderDataGraphMetaspaceIterator iter;
    1.46 @@ -2661,15 +2634,15 @@
    1.47    out->print_cr(" Metaspace total "
    1.48                  SIZE_FORMAT "K, used " SIZE_FORMAT "K,"
    1.49                  " reserved " SIZE_FORMAT "K",
    1.50 -                capacity_in_bytes()/K, used_in_bytes_unsafe()/K, reserved_in_bytes()/K);
    1.51 +                capacity_in_bytes()/K, used_in_bytes()/K, reserved_in_bytes()/K);
    1.52    out->print_cr("  data space     "
    1.53                  SIZE_FORMAT "K, used " SIZE_FORMAT "K,"
    1.54                  " reserved " SIZE_FORMAT "K",
    1.55 -                capacity_in_bytes(nct)/K, used_in_bytes_unsafe(nct)/K, reserved_in_bytes(nct)/K);
    1.56 +                capacity_in_bytes(nct)/K, used_in_bytes(nct)/K, reserved_in_bytes(nct)/K);
    1.57    out->print_cr("  class space    "
    1.58                  SIZE_FORMAT "K, used " SIZE_FORMAT "K,"
    1.59                  " reserved " SIZE_FORMAT "K",
    1.60 -                capacity_in_bytes(ct)/K, used_in_bytes_unsafe(ct)/K, reserved_in_bytes(ct)/K);
    1.61 +                capacity_in_bytes(ct)/K, used_in_bytes(ct)/K, reserved_in_bytes(ct)/K);
    1.62  }
    1.63  
    1.64  // Print information for class space and data space separately.
     2.1 --- a/src/share/vm/memory/metaspace.hpp	Wed Sep 05 20:08:08 2012 -0400
     2.2 +++ b/src/share/vm/memory/metaspace.hpp	Thu Sep 06 07:28:30 2012 -0700
     2.3 @@ -149,10 +149,6 @@
     2.4  
     2.5    // Statistics for class space and data space in metaspace.
     2.6    static size_t used_in_bytes(Metaspace::MetadataType mdtype);
     2.7 -  // Same as used_in_bytes() without the consistency checking.
     2.8 -  // Use this version if not at a safepoint (so consistency is
     2.9 -  // not necessarily expected).
    2.10 -  static size_t used_in_bytes_unsafe(Metaspace::MetadataType mdtype);
    2.11    static size_t free_in_bytes(Metaspace::MetadataType mdtype);
    2.12    static size_t capacity_in_bytes(Metaspace::MetadataType mdtype);
    2.13    static size_t reserved_in_bytes(Metaspace::MetadataType mdtype);
    2.14 @@ -167,11 +163,6 @@
    2.15             used_in_bytes(Metaspace::NonClassType);
    2.16    }
    2.17  
    2.18 -  static size_t used_in_bytes_unsafe() {
    2.19 -    return used_in_bytes_unsafe(Metaspace::ClassType) +
    2.20 -           used_in_bytes_unsafe(Metaspace::NonClassType);
    2.21 -  }
    2.22 -
    2.23    // Total of available space in all Metaspaces
    2.24    // Total of capacity allocated to all Metaspaces.  This includes
    2.25    // space in Metachunks not yet allocated and in the Metachunk
     3.1 --- a/src/share/vm/memory/metaspaceCounters.cpp	Wed Sep 05 20:08:08 2012 -0400
     3.2 +++ b/src/share/vm/memory/metaspaceCounters.cpp	Thu Sep 06 07:28:30 2012 -0700
     3.3 @@ -35,7 +35,7 @@
     3.4      size_t min_capacity = MetaspaceAux::min_chunk_size();
     3.5      size_t max_capacity = MetaspaceAux::reserved_in_bytes();
     3.6      size_t curr_capacity = MetaspaceAux::capacity_in_bytes();
     3.7 -    size_t used = MetaspaceAux::used_in_bytes_unsafe();
     3.8 +    size_t used = MetaspaceAux::used_in_bytes();
     3.9  
    3.10      initialize(min_capacity, max_capacity, curr_capacity, used);
    3.11    }
    3.12 @@ -131,7 +131,7 @@
    3.13  
    3.14  void MetaspaceCounters::update_used() {
    3.15    assert(UsePerfData, "Should not be called unless being used");
    3.16 -  size_t used_in_bytes = MetaspaceAux::used_in_bytes_unsafe();
    3.17 +  size_t used_in_bytes = MetaspaceAux::used_in_bytes();
    3.18    _used->set_value(used_in_bytes);
    3.19  }
    3.20  

mercurial