Skip to content

Commit 0f0100e

Browse files
committed
Add logs to the tracking provider
1 parent 5fbf9e5 commit 0f0100e

File tree

2 files changed

+39
-3
lines changed

2 files changed

+39
-3
lines changed

src/memory_pool.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ static umf_result_t umfPoolCreateInternal(const umf_memory_pool_ops_t *ops,
5959
}
6060

6161
*hPool = pool;
62+
LOG_INFO("Memory pool created: %p", (void *)pool);
6263
return UMF_RESULT_SUCCESS;
6364

6465
err_pool_init:
@@ -83,6 +84,9 @@ void umfPoolDestroy(umf_memory_pool_handle_t hPool) {
8384
// Destroy tracking provider.
8485
umfMemoryProviderDestroy(hPool->provider);
8586
}
87+
88+
LOG_INFO("Memory pool destroyed: %p", (void *)hPool);
89+
8690
// TODO: this free keeps memory in base allocator, so it can lead to OOM in some scenarios (it should be optimized)
8791
umf_ba_global_free(hPool);
8892
}

src/provider/provider_tracking.c

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ static umf_result_t umfMemoryTrackerAdd(umf_memory_tracker_handle_t hTracker,
3737

3838
tracker_value_t *value = umf_ba_alloc(hTracker->tracker_allocator);
3939
if (value == NULL) {
40+
LOG_ERR("umfMemoryTrackerAdd: failed to allocate tracker value, "
41+
"ptr=%p, size=%zu",
42+
ptr, size);
4043
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
4144
}
4245

@@ -46,16 +49,22 @@ static umf_result_t umfMemoryTrackerAdd(umf_memory_tracker_handle_t hTracker,
4649
int ret = critnib_insert(hTracker->map, (uintptr_t)ptr, value, 0);
4750

4851
if (ret == 0) {
52+
LOG_DEBUG("umfMemoryTrackerAdd: memory region is added, tracker=%p, "
53+
"ptr=%p, size=%zu",
54+
(void *)hTracker, ptr, size);
4955
return UMF_RESULT_SUCCESS;
5056
}
5157

58+
LOG_ERR("umfMemoryTrackerAdd: failed to insert tracker value, ret=%d, "
59+
"ptr=%p, size=%zu",
60+
ret, ptr, size);
61+
5262
umf_ba_free(hTracker->tracker_allocator, value);
5363

5464
if (ret == ENOMEM) {
5565
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
5666
}
5767

58-
LOG_ERR("umfMemoryTrackerAdd: Unknown Error %d", ret);
5968
return UMF_RESULT_ERROR_UNKNOWN;
6069
}
6170

@@ -109,6 +118,9 @@ umf_result_t umfMemoryTrackerGetAllocInfo(const void *ptr,
109118
int found = critnib_find(TRACKER->map, (uintptr_t)ptr, FIND_LE,
110119
(void *)&rkey, (void **)&rvalue);
111120
if (!found || (uintptr_t)ptr >= rkey + rvalue->size) {
121+
LOG_WARN("umfMemoryTrackerGetAllocInfo: pointer %p not found in the "
122+
"tacker, TRACKER=%p",
123+
ptr, (void *)TRACKER);
112124
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
113125
}
114126

@@ -585,13 +597,20 @@ static umf_result_t trackingOpenIpcHandle(void *provider, void *providerIpcData,
585597

586598
ret = umfMemoryProviderOpenIPCHandle(p->hUpstream, providerIpcData, ptr);
587599
if (ret != UMF_RESULT_SUCCESS) {
600+
LOG_ERR(
601+
"tracking open ipc handle: umfMemoryProviderOpenIPCHandle failed");
588602
return ret;
589603
}
590604
size_t bufferSize = getDataSizeFromIpcHandle(providerIpcData);
591605
ret = umfMemoryTrackerAdd(p->hTracker, p->pool, *ptr, bufferSize);
592606
if (ret != UMF_RESULT_SUCCESS) {
607+
LOG_ERR("tracking open ipc handle: umfMemoryTrackerAdd failed, ptr=%p, "
608+
"size=%zu",
609+
*ptr, bufferSize);
593610
if (umfMemoryProviderCloseIPCHandle(p->hUpstream, *ptr, bufferSize)) {
594-
// TODO: LOG
611+
LOG_ERR("tracking open ipc handle: umfMemoryProviderCloseIPCHandle "
612+
"failed, ptr=%p, size=%zu",
613+
*ptr, bufferSize);
595614
}
596615
}
597616
return ret;
@@ -611,7 +630,9 @@ static umf_result_t trackingCloseIpcHandle(void *provider, void *ptr,
611630
if (ret != UMF_RESULT_SUCCESS) {
612631
// DO NOT return an error here, because the tracking provider
613632
// cannot change behaviour of the upstream provider.
614-
LOG_ERR("tracking free: umfMemoryTrackerRemove failed");
633+
LOG_ERR("tracking free: umfMemoryTrackerRemove failed, ptr=%p, "
634+
"size=%zu",
635+
ptr, size);
615636
}
616637
}
617638
return umfMemoryProviderCloseIPCHandle(p->hUpstream, ptr, size);
@@ -645,14 +666,21 @@ umf_result_t umfTrackingMemoryProviderCreate(
645666
params.hUpstream = hUpstream;
646667
params.hTracker = TRACKER;
647668
if (!params.hTracker) {
669+
LOG_ERR("umfTrackingMemoryProviderCreate: failed, TRACKER is NULL");
648670
return UMF_RESULT_ERROR_UNKNOWN;
649671
}
650672
params.pool = hPool;
651673
params.ipcCache = critnib_new();
652674
if (!params.ipcCache) {
675+
LOG_ERR("umfTrackingMemoryProviderCreate: failed to create IPC cache");
653676
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
654677
}
655678

679+
LOG_DEBUG("umfTrackingMemoryProviderCreate: upstream=%p, tracker=%p, "
680+
"pool=%p, ipcCache=%p",
681+
(void *)params.hUpstream, (void *)params.hTracker,
682+
(void *)params.pool, (void *)params.ipcCache);
683+
656684
return umfMemoryProviderCreate(&UMF_TRACKING_MEMORY_PROVIDER_OPS, &params,
657685
hTrackingProvider);
658686
}
@@ -691,6 +719,10 @@ umf_memory_tracker_handle_t umfMemoryTrackerCreate(void) {
691719
goto err_destroy_mutex;
692720
}
693721

722+
LOG_DEBUG(
723+
"umfMemoryTrackerCreate: tracker created, handle=%p, segment map=%p",
724+
(void *)handle, (void *)handle->map);
725+
694726
return handle;
695727

696728
err_destroy_mutex:

0 commit comments

Comments
 (0)