[CP] Make ob_guard happy

This commit is contained in:
obdev
2022-11-15 13:35:44 +00:00
committed by wangzelin.wzl
parent 0d37562338
commit fc231c5a09
3 changed files with 17 additions and 3 deletions

View File

@ -60,7 +60,7 @@ AChunkMgr &AChunkMgr::instance()
AChunkMgr::AChunkMgr()
: free_list_(), chunk_bitmap_(nullptr), limit_(DEFAULT_LIMIT), urgent_(0), hold_(0),
total_hold_(0), maps_(0), unmaps_(0), large_maps_(0), large_unmaps_(0)
total_hold_(0), maps_(0), unmaps_(0), large_maps_(0), large_unmaps_(0), shadow_hold_(0)
{
}
@ -176,6 +176,7 @@ void *AChunkMgr::low_alloc(const uint64_t size, const bool can_use_huge_page, bo
LOG_ERROR("sanity alloc shadow failed", K(errno), KP(shad_ptr));
abort();
} else {
IGNORE_RETURN ATOMIC_FAA(&shadow_hold_, shad_size);
//memset(shad_ptr, 0, shad_size);
//SANITY_UNPOISON(shad_ptr, shad_size); // maybe no need?
//SANITY_UNPOISON(ptr, size); // maybe no need?
@ -189,6 +190,7 @@ void AChunkMgr::low_free(const void *ptr, const uint64_t size)
if (SANITY_ADDR_IN_RANGE(ptr)) {
void *shad_ptr = SANITY_TO_SHADOW((void*)ptr);
ssize_t shad_size = SANITY_TO_SHADOW_SIZE(size);
IGNORE_RETURN ATOMIC_FAA(&shadow_hold_, -shad_size);
::munmap(shad_ptr, shad_size);
}
::munmap((void*)ptr, size);

View File

@ -204,6 +204,7 @@ public:
inline int64_t get_unmaps() { return unmaps_; }
inline int64_t get_large_maps() { return large_maps_; }
inline int64_t get_large_unmaps() { return large_unmaps_; }
inline int64_t get_shadow_hold() const { return ATOMIC_LOAD(&shadow_hold_); }
private:
typedef ABitSet ChunkBitMap;
@ -228,6 +229,7 @@ protected:
int64_t unmaps_;
int64_t large_maps_;
int64_t large_unmaps_;
int64_t shadow_hold_;
}; // end of class AChunkMgr
OB_INLINE AChunk *AChunkMgr::ptr2chunk(const void *ptr)

View File

@ -107,7 +107,12 @@ int ObTenantMemoryPrinter::print_tenant_usage()
_STORAGE_LOG(INFO,
"[CHUNK_MGR] free=%ld pushes=%ld pops=%ld limit=%'15ld hold=%'15ld total_hold=%'15ld used=%'15ld" \
" freelist_hold=%'15ld maps=%'15ld unmaps=%'15ld large_maps=%'15ld large_unmaps=%'15ld" \
" memalign=%d virtual_memory_used=%'15ld\n",
" memalign=%d"
#ifndef ENABLE_SANITY
" virtual_memory_used=%'15ld\n",
#else
" virtual_memory_used=%'15ld actual_virtual_memory_used=%'15ld\n",
#endif
CHUNK_MGR.get_free_chunk_count(),
CHUNK_MGR.get_free_chunk_pushes(),
CHUNK_MGR.get_free_chunk_pops(),
@ -121,7 +126,12 @@ int ObTenantMemoryPrinter::print_tenant_usage()
CHUNK_MGR.get_large_maps(),
CHUNK_MGR.get_large_unmaps(),
0,
memory_used);
#ifndef ENABLE_SANITY
memory_used
#else
memory_used - CHUNK_MGR.get_shadow_hold(), memory_used
#endif
);
print_mutex_.unlock();
}