Skip to content

Commit 45806bb

Browse files
committed
Implement purge_lazy/_force() API of the Coarse provider
Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
1 parent 7cbe2e9 commit 45806bb

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

src/provider/provider_coarse.c

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1535,6 +1535,40 @@ coarse_memory_provider_get_stats(void *provider,
15351535
return UMF_RESULT_SUCCESS;
15361536
}
15371537

1538+
static umf_result_t coarse_memory_provider_purge_lazy(void *provider, void *ptr,
1539+
size_t size) {
1540+
if (provider == NULL || ptr == NULL) {
1541+
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
1542+
}
1543+
1544+
coarse_memory_provider_t *coarse_provider =
1545+
(struct coarse_memory_provider_t *)provider;
1546+
if (coarse_provider->upstream_memory_provider == NULL) {
1547+
LOG_ERR("no upstream memory provider given");
1548+
return UMF_RESULT_ERROR_NOT_SUPPORTED;
1549+
}
1550+
1551+
return umfMemoryProviderPurgeLazy(coarse_provider->upstream_memory_provider,
1552+
ptr, size);
1553+
}
1554+
1555+
static umf_result_t coarse_memory_provider_purge_force(void *provider,
1556+
void *ptr, size_t size) {
1557+
if (provider == NULL || ptr == NULL) {
1558+
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
1559+
}
1560+
1561+
coarse_memory_provider_t *coarse_provider =
1562+
(struct coarse_memory_provider_t *)provider;
1563+
if (coarse_provider->upstream_memory_provider == NULL) {
1564+
LOG_ERR("no upstream memory provider given");
1565+
return UMF_RESULT_ERROR_NOT_SUPPORTED;
1566+
}
1567+
1568+
return umfMemoryProviderPurgeForce(
1569+
coarse_provider->upstream_memory_provider, ptr, size);
1570+
}
1571+
15381572
static umf_result_t coarse_memory_provider_allocation_split(void *provider,
15391573
void *ptr,
15401574
size_t totalSize,
@@ -1719,12 +1753,12 @@ umf_memory_provider_ops_t UMF_COARSE_MEMORY_PROVIDER_OPS = {
17191753
.get_min_page_size = coarse_memory_provider_get_min_page_size,
17201754
.get_name = coarse_memory_provider_get_name,
17211755
.ext.free = coarse_memory_provider_free,
1756+
.ext.purge_lazy = coarse_memory_provider_purge_lazy,
1757+
.ext.purge_force = coarse_memory_provider_purge_force,
17221758
.ext.allocation_merge = coarse_memory_provider_allocation_merge,
17231759
.ext.allocation_split = coarse_memory_provider_allocation_split,
17241760
// TODO
17251761
/*
1726-
.ext.purge_lazy = coarse_memory_provider_purge_lazy,
1727-
.ext.purge_force = coarse_memory_provider_purge_force,
17281762
.ipc.get_ipc_handle_size = coarse_memory_provider_get_ipc_handle_size,
17291763
.ipc.get_ipc_handle = coarse_memory_provider_get_ipc_handle,
17301764
.ipc.put_ipc_handle = coarse_memory_provider_put_ipc_handle,

0 commit comments

Comments
 (0)