Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/metaspace.cpp @ 6730:5d2156bcb78b
7195789: NPG: assert(used + free == capacity) failed: Accounting is wrong
Reviewed-by: coleenp, jcoomes
author | jmasa |
---|---|
date | Tue, 04 Sep 2012 16:20:28 -0700 |
parents | 03049e0e8544 |
children | 942bb29b20b0 |
comparison
equal
deleted
inserted
replaced
6729:d17383603741 | 6730:5d2156bcb78b |
---|---|
2539 #endif // PRODUCT | 2539 #endif // PRODUCT |
2540 | 2540 |
2541 | 2541 |
2542 // MetaspaceAux | 2542 // MetaspaceAux |
2543 | 2543 |
2544 size_t MetaspaceAux::used_in_bytes_unsafe(Metaspace::MetadataType mdtype) { | |
2545 size_t used = 0; | |
2546 ClassLoaderDataGraphMetaspaceIterator iter; | |
2547 while (iter.repeat()) { | |
2548 Metaspace* msp = iter.get_next(); | |
2549 // Sum allocation_total for each metaspace | |
2550 if (msp != NULL) { | |
2551 used += msp->used_words(mdtype); | |
2552 } | |
2553 } | |
2554 return used * BytesPerWord; | |
2555 } | |
2556 | |
2544 size_t MetaspaceAux::used_in_bytes(Metaspace::MetadataType mdtype) { | 2557 size_t MetaspaceAux::used_in_bytes(Metaspace::MetadataType mdtype) { |
2558 assert(SafepointSynchronize::is_at_safepoint(), | |
2559 "Consistency checks require being at a safepoint"); | |
2545 size_t used = 0; | 2560 size_t used = 0; |
2546 #ifdef ASSERT | 2561 #ifdef ASSERT |
2547 size_t free = 0; | 2562 size_t free = 0; |
2548 size_t capacity = 0; | 2563 size_t capacity = 0; |
2549 #endif | 2564 #endif |
2644 Metaspace::MetadataType nct = Metaspace::NonClassType; | 2659 Metaspace::MetadataType nct = Metaspace::NonClassType; |
2645 | 2660 |
2646 out->print_cr(" Metaspace total " | 2661 out->print_cr(" Metaspace total " |
2647 SIZE_FORMAT "K, used " SIZE_FORMAT "K," | 2662 SIZE_FORMAT "K, used " SIZE_FORMAT "K," |
2648 " reserved " SIZE_FORMAT "K", | 2663 " reserved " SIZE_FORMAT "K", |
2649 capacity_in_bytes()/K, used_in_bytes()/K, reserved_in_bytes()/K); | 2664 capacity_in_bytes()/K, used_in_bytes_unsafe()/K, reserved_in_bytes()/K); |
2650 out->print_cr(" data space " | 2665 out->print_cr(" data space " |
2651 SIZE_FORMAT "K, used " SIZE_FORMAT "K," | 2666 SIZE_FORMAT "K, used " SIZE_FORMAT "K," |
2652 " reserved " SIZE_FORMAT "K", | 2667 " reserved " SIZE_FORMAT "K", |
2653 capacity_in_bytes(nct)/K, used_in_bytes(nct)/K, reserved_in_bytes(nct)/K); | 2668 capacity_in_bytes(nct)/K, used_in_bytes_unsafe(nct)/K, reserved_in_bytes(nct)/K); |
2654 out->print_cr(" class space " | 2669 out->print_cr(" class space " |
2655 SIZE_FORMAT "K, used " SIZE_FORMAT "K," | 2670 SIZE_FORMAT "K, used " SIZE_FORMAT "K," |
2656 " reserved " SIZE_FORMAT "K", | 2671 " reserved " SIZE_FORMAT "K", |
2657 capacity_in_bytes(ct)/K, used_in_bytes(ct)/K, reserved_in_bytes(ct)/K); | 2672 capacity_in_bytes(ct)/K, used_in_bytes_unsafe(ct)/K, reserved_in_bytes(ct)/K); |
2658 } | 2673 } |
2659 | 2674 |
2660 // Print information for class space and data space separately. | 2675 // Print information for class space and data space separately. |
2661 // This is almost the same as above. | 2676 // This is almost the same as above. |
2662 void MetaspaceAux::print_on(outputStream* out, Metaspace::MetadataType mdtype) { | 2677 void MetaspaceAux::print_on(outputStream* out, Metaspace::MetadataType mdtype) { |