mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
7191124: Optimized build is broken due to inconsistent use of DEBUG_ONLY and NOT_PRODUCT macros in NMT
Updated all related variables and methods to use NOT_PRODUCT macros Reviewed-by: coleenp, acorn, kvn
This commit is contained in:
parent
c99e9bbc0f
commit
5bc134a53b
6 changed files with 29 additions and 29 deletions
|
@ -27,7 +27,7 @@
|
||||||
#include "services/memTracker.hpp"
|
#include "services/memTracker.hpp"
|
||||||
|
|
||||||
volatile jint SequenceGenerator::_seq_number = 1;
|
volatile jint SequenceGenerator::_seq_number = 1;
|
||||||
DEBUG_ONLY(jint SequenceGenerator::_max_seq_number = 1;)
|
NOT_PRODUCT(jint SequenceGenerator::_max_seq_number = 1;)
|
||||||
DEBUG_ONLY(volatile unsigned long SequenceGenerator::_generation = 0;)
|
DEBUG_ONLY(volatile unsigned long SequenceGenerator::_generation = 0;)
|
||||||
|
|
||||||
jint SequenceGenerator::next() {
|
jint SequenceGenerator::next() {
|
||||||
|
@ -36,7 +36,7 @@ jint SequenceGenerator::next() {
|
||||||
MemTracker::shutdown(MemTracker::NMT_sequence_overflow);
|
MemTracker::shutdown(MemTracker::NMT_sequence_overflow);
|
||||||
}
|
}
|
||||||
assert(seq > 0, "counter overflow");
|
assert(seq > 0, "counter overflow");
|
||||||
DEBUG_ONLY(_max_seq_number = (seq > _max_seq_number) ? seq : _max_seq_number;)
|
NOT_PRODUCT(_max_seq_number = (seq > _max_seq_number) ? seq : _max_seq_number;)
|
||||||
return seq;
|
return seq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,11 +51,11 @@ class SequenceGenerator : AllStatic {
|
||||||
};
|
};
|
||||||
|
|
||||||
DEBUG_ONLY(static unsigned long current_generation() { return (unsigned long)_generation; })
|
DEBUG_ONLY(static unsigned long current_generation() { return (unsigned long)_generation; })
|
||||||
DEBUG_ONLY(static jint max_seq_num() { return _max_seq_number; })
|
NOT_PRODUCT(static jint max_seq_num() { return _max_seq_number; })
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static volatile jint _seq_number;
|
static volatile jint _seq_number;
|
||||||
DEBUG_ONLY(static jint _max_seq_number; )
|
NOT_PRODUCT(static jint _max_seq_number; )
|
||||||
DEBUG_ONLY(static volatile unsigned long _generation; )
|
DEBUG_ONLY(static volatile unsigned long _generation; )
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ class MemPointerArray : public CHeapObj<mtNMT> {
|
||||||
virtual size_t instance_size() const = 0;
|
virtual size_t instance_size() const = 0;
|
||||||
virtual bool shrink() = 0;
|
virtual bool shrink() = 0;
|
||||||
|
|
||||||
debug_only(virtual int capacity() const = 0;)
|
NOT_PRODUCT(virtual int capacity() const = 0;)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Iterator interface
|
// Iterator interface
|
||||||
|
@ -205,7 +205,7 @@ template <class E> class MemPointerArrayImpl : public MemPointerArray {
|
||||||
return _size;
|
return _size;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_only(int capacity() const { return _max_size; })
|
NOT_PRODUCT(int capacity() const { return _max_size; })
|
||||||
|
|
||||||
void clear() {
|
void clear() {
|
||||||
assert(_data != NULL, "Just check");
|
assert(_data != NULL, "Just check");
|
||||||
|
|
|
@ -73,7 +73,7 @@ template <class E, int SIZE> class FixedSizeMemPointerArray :
|
||||||
return sizeof(FixedSizeMemPointerArray<E, SIZE>);
|
return sizeof(FixedSizeMemPointerArray<E, SIZE>);
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_only(int capacity() const { return SIZE; })
|
NOT_PRODUCT(int capacity() const { return SIZE; })
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// implementation of public interface
|
// implementation of public interface
|
||||||
|
|
|
@ -338,15 +338,13 @@ void MemSnapshot::promote() {
|
||||||
vm_itr.insert_after(cur_vm);
|
vm_itr.insert_after(cur_vm);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#ifdef ASSERT
|
|
||||||
// In theory, we should assert without conditions. However, in case of native
|
// In theory, we should assert without conditions. However, in case of native
|
||||||
// thread stack, NMT explicitly releases the thread stack in Thread's destructor,
|
// thread stack, NMT explicitly releases the thread stack in Thread's destructor,
|
||||||
// due to platform dependent behaviors. On some platforms, we see uncommit/release
|
// due to platform dependent behaviors. On some platforms, we see uncommit/release
|
||||||
// native thread stack, but some, we don't.
|
// native thread stack, but some, we don't.
|
||||||
if (!cur_vm->is_uncommit_record() && !cur_vm->is_deallocation_record()) {
|
assert(cur_vm->is_uncommit_record() || cur_vm->is_deallocation_record(),
|
||||||
fatal(err_msg("Should not reach here, pointer flags = [%x]", cur_vm->flags()));
|
err_msg("Should not reach here, pointer addr = [" INTPTR_FORMAT "], flags = [%x]",
|
||||||
}
|
cur_vm->addr(), cur_vm->flags()));
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -406,7 +404,7 @@ void MemSnapshot::promote() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef ASSERT
|
#ifndef PRODUCT
|
||||||
void MemSnapshot::print_snapshot_stats(outputStream* st) {
|
void MemSnapshot::print_snapshot_stats(outputStream* st) {
|
||||||
st->print_cr("Snapshot:");
|
st->print_cr("Snapshot:");
|
||||||
st->print_cr("\tMalloced: %d/%d [%5.2f%%] %dKB", _alloc_ptrs->length(), _alloc_ptrs->capacity(),
|
st->print_cr("\tMalloced: %d/%d [%5.2f%%] %dKB", _alloc_ptrs->length(), _alloc_ptrs->capacity(),
|
||||||
|
@ -434,6 +432,20 @@ void MemSnapshot::check_malloc_pointers() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool MemSnapshot::has_allocation_record(address addr) {
|
||||||
|
MemPointerArrayIteratorImpl itr(_staging_area);
|
||||||
|
MemPointerRecord* cur = (MemPointerRecord*)itr.current();
|
||||||
|
while (cur != NULL) {
|
||||||
|
if (cur->addr() == addr && cur->is_allocation_record()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
cur = (MemPointerRecord*)itr.next();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif // PRODUCT
|
||||||
|
|
||||||
|
#ifdef ASSERT
|
||||||
void MemSnapshot::check_staging_data() {
|
void MemSnapshot::check_staging_data() {
|
||||||
MemPointerArrayIteratorImpl itr(_staging_area);
|
MemPointerArrayIteratorImpl itr(_staging_area);
|
||||||
MemPointerRecord* cur = (MemPointerRecord*)itr.current();
|
MemPointerRecord* cur = (MemPointerRecord*)itr.current();
|
||||||
|
@ -447,17 +459,5 @@ void MemSnapshot::check_staging_data() {
|
||||||
next = (MemPointerRecord*)itr.next();
|
next = (MemPointerRecord*)itr.next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // ASSERT
|
||||||
|
|
||||||
bool MemSnapshot::has_allocation_record(address addr) {
|
|
||||||
MemPointerArrayIteratorImpl itr(_staging_area);
|
|
||||||
MemPointerRecord* cur = (MemPointerRecord*)itr.current();
|
|
||||||
while (cur != NULL) {
|
|
||||||
if (cur->addr() == addr && cur->is_allocation_record()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
cur = (MemPointerRecord*)itr.next();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ MemTracker::ShutdownReason MemTracker::_reason = NMT_shutdown_none;
|
||||||
int MemTracker::_thread_count = 255;
|
int MemTracker::_thread_count = 255;
|
||||||
volatile jint MemTracker::_pooled_recorder_count = 0;
|
volatile jint MemTracker::_pooled_recorder_count = 0;
|
||||||
debug_only(intx MemTracker::_main_thread_tid = 0;)
|
debug_only(intx MemTracker::_main_thread_tid = 0;)
|
||||||
debug_only(volatile jint MemTracker::_pending_recorder_count = 0;)
|
NOT_PRODUCT(volatile jint MemTracker::_pending_recorder_count = 0;)
|
||||||
|
|
||||||
void MemTracker::init_tracking_options(const char* option_line) {
|
void MemTracker::init_tracking_options(const char* option_line) {
|
||||||
_tracking_level = NMT_off;
|
_tracking_level = NMT_off;
|
||||||
|
@ -291,7 +291,7 @@ MemRecorder* MemTracker::get_pending_recorders() {
|
||||||
(void*)cur_head)) {
|
(void*)cur_head)) {
|
||||||
cur_head = const_cast<MemRecorder*>(_merge_pending_queue);
|
cur_head = const_cast<MemRecorder*>(_merge_pending_queue);
|
||||||
}
|
}
|
||||||
debug_only(Atomic::store(0, &_pending_recorder_count));
|
NOT_PRODUCT(Atomic::store(0, &_pending_recorder_count));
|
||||||
return cur_head;
|
return cur_head;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -420,7 +420,7 @@ void MemTracker::enqueue_pending_recorder(MemRecorder* rec) {
|
||||||
cur_head = const_cast<MemRecorder*>(_merge_pending_queue);
|
cur_head = const_cast<MemRecorder*>(_merge_pending_queue);
|
||||||
rec->set_next(cur_head);
|
rec->set_next(cur_head);
|
||||||
}
|
}
|
||||||
debug_only(Atomic::inc(&_pending_recorder_count);)
|
NOT_PRODUCT(Atomic::inc(&_pending_recorder_count);)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue