[CP] Make ob_guard happy
This commit is contained in:
4
deps/oblib/src/lib/resource/achunk_mgr.cpp
vendored
4
deps/oblib/src/lib/resource/achunk_mgr.cpp
vendored
@ -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);
|
||||
|
||||
2
deps/oblib/src/lib/resource/achunk_mgr.h
vendored
2
deps/oblib/src/lib/resource/achunk_mgr.h
vendored
@ -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)
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user