comparison src/share/vm/gc_implementation/g1/ptrQueue.cpp @ 6197:d2a62e0f25eb

6995781: Native Memory Tracking (Phase 1) 7151532: DCmd for hotspot native memory tracking Summary: Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd Reviewed-by: acorn, coleenp, fparain
author zgu
date Thu, 28 Jun 2012 17:03:16 -0400
parents f08d439fab8c
children b9a9ed0f8eeb
comparison
equal deleted inserted replaced
6174:74533f63b116 6197:d2a62e0f25eb
124 _fl_owner->_buf_free_list = _fl_owner->_buf_free_list->next(); 124 _fl_owner->_buf_free_list = _fl_owner->_buf_free_list->next();
125 _fl_owner->_buf_free_list_sz--; 125 _fl_owner->_buf_free_list_sz--;
126 return res; 126 return res;
127 } else { 127 } else {
128 // Allocate space for the BufferNode in front of the buffer. 128 // Allocate space for the BufferNode in front of the buffer.
129 char *b = NEW_C_HEAP_ARRAY(char, _sz + BufferNode::aligned_size()); 129 char *b = NEW_C_HEAP_ARRAY(char, _sz + BufferNode::aligned_size(), mtGC);
130 return BufferNode::make_buffer_from_block(b); 130 return BufferNode::make_buffer_from_block(b);
131 } 131 }
132 } 132 }
133 133
134 void PtrQueueSet::deallocate_buffer(void** buf) { 134 void PtrQueueSet::deallocate_buffer(void** buf) {
147 size_t n = _buf_free_list_sz / 2; 147 size_t n = _buf_free_list_sz / 2;
148 while (n > 0) { 148 while (n > 0) {
149 assert(_buf_free_list != NULL, "_buf_free_list_sz must be wrong."); 149 assert(_buf_free_list != NULL, "_buf_free_list_sz must be wrong.");
150 void* b = BufferNode::make_block_from_node(_buf_free_list); 150 void* b = BufferNode::make_block_from_node(_buf_free_list);
151 _buf_free_list = _buf_free_list->next(); 151 _buf_free_list = _buf_free_list->next();
152 FREE_C_HEAP_ARRAY(char, b); 152 FREE_C_HEAP_ARRAY(char, b, mtGC);
153 _buf_free_list_sz --; 153 _buf_free_list_sz --;
154 n--; 154 n--;
155 } 155 }
156 } 156 }
157 157