Skip to content

Commit fc744b7

Browse files
committed
Fix debug check in the tracking provider
Fix debug check in the tracking provider. Run this check only when UMF_DEVELOPER_MODE is set. Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
1 parent a749c0e commit fc744b7

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

src/provider/provider_tracking.c

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ typedef struct tracker_alloc_info_t {
5050
// in the next level of map
5151
// falling within the current range
5252
size_t n_children;
53-
#ifndef NDEBUG
54-
size_t is_freed;
55-
#endif /* NDEBUG */
53+
#if !defined(NDEBUG) && defined(UMF_DEVELOPER_MODE)
54+
uint64_t is_freed;
55+
#endif
5656
} tracker_alloc_info_t;
5757

5858
typedef struct tracker_ipc_info_t {
@@ -194,9 +194,9 @@ umfMemoryTrackerAddAtLevel(umf_memory_tracker_handle_t hTracker, int level,
194194
value->pool = pool;
195195
value->size = size;
196196
value->n_children = 0;
197-
#ifndef NDEBUG
197+
#if !defined(NDEBUG) && defined(UMF_DEVELOPER_MODE)
198198
value->is_freed = 0;
199-
#endif /* NDEBUG */
199+
#endif
200200

201201
assert(level < MAX_LEVELS_OF_ALLOC_SEGMENT_MAP);
202202
int ret = critnib_insert(hTracker->alloc_segments_map[level],
@@ -276,10 +276,12 @@ static umf_result_t umfMemoryTrackerAdd(umf_memory_tracker_handle_t hTracker,
276276
continue;
277277
}
278278

279-
#ifndef NDEBUG
279+
#if !defined(NDEBUG) && defined(UMF_DEVELOPER_MODE)
280280
// make sure rvalue is not freed
281-
assert(rvalue->is_freed != 0xDEADBEEF);
282-
#endif /* NDEBUG */
281+
uint64_t is_freed;
282+
utils_atomic_load_acquire_u64(&rvalue->is_freed, &is_freed);
283+
assert(is_freed != 0xDEADBEEF);
284+
#endif
283285

284286
utils_atomic_load_acquire_u64((uint64_t *)&rvalue->size, &rsize);
285287

@@ -1354,10 +1356,10 @@ void umfTrackingMemoryProviderGetUpstreamProvider(
13541356

13551357
static void free_leaf(void *leaf_allocator, void *ptr) {
13561358
if (ptr) {
1357-
#ifndef NDEBUG
1359+
#if !defined(NDEBUG) && defined(UMF_DEVELOPER_MODE)
13581360
tracker_alloc_info_t *value = (tracker_alloc_info_t *)ptr;
1359-
value->is_freed = 0xDEADBEEF;
1360-
#endif /* NDEBUG */
1361+
utils_atomic_store_release_u64(&value->is_freed, 0xDEADBEEF);
1362+
#endif
13611363
umf_ba_free(leaf_allocator, ptr);
13621364
}
13631365
}

0 commit comments

Comments
 (0)