-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
enable tracker in ProxyLib by default #761
base: main
Are you sure you want to change the base?
enable tracker in ProxyLib by default #761
Conversation
c6c79fb
to
3636263
Compare
Just to note it here: As we agreed yesterday, the proxy lib should ON the memory tracker for the proxy pool. In general memory tracker (as an essential part of UMF) should be always ON. For the use cases when tracking should be disabled for some reasons the |
8393472
to
96e05e8
Compare
96e05e8
to
1a7c33e
Compare
10a5b7f
to
722ad17
Compare
602ccfc
to
b61e0bf
Compare
b61e0bf
to
0c0e480
Compare
// the allocation was made by the ProxyLib so we only update the tracker | ||
value->pool = p->pool; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So we assume that ProxyLib will not look for this pointer any more? Is it based on the fact that ProxyLib does not call umfPoolByPtr()
in its source code?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. Also the proxy lib would not free this allocation - this would be done by the user created Pool
# TODO - fix ipc_file_prov and ipc_file_prov_fsdax tests | ||
# add_umf_ipc_test(TEST ipc_file_prov) add_umf_ipc_test(TEST | ||
# ipc_file_prov_fsdax) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
An issue should be added for this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if(UMF_BUILD_GPU_TESTS AND UMF_BUILD_LEVEL_ZERO_PROVIDER) | ||
if(UMF_BUILD_GPU_TESTS | ||
AND UMF_BUILD_LEVEL_ZERO_PROVIDER | ||
AND UMF_BUILD_LIBUMF_POOL_DISJOINT) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why does it belong to this PR? What does it have in common?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have to use Disjoint Pool in GPU tests
@@ -453,6 +467,7 @@ if(LINUX) | |||
providers/level_zero_helpers.cpp | |||
LIBS | |||
ze_loader | |||
disjoint_pool |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why does it belong to this PR? What does it have in common?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have to use Disjoint Pool in GPU tests
@@ -464,6 +479,7 @@ if(LINUX) | |||
providers/level_zero_helpers.cpp | |||
LIBS | |||
ze_loader | |||
disjoint_pool |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why does it belong to this PR? What does it have in common?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have to use Disjoint Pool in GPU tests
# set UMF_PROXY_LIB_ENABLED | ||
if(UMF_PROXY_LIB_BASED_ON_POOL STREQUAL SCALABLE) | ||
if(UMF_LINK_HWLOC_STATICALLY) | ||
message( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why does proxy lib require HWLOC to be linked dynamically?
if (value) { | ||
assert(value->pool != p->pool); | ||
|
||
LOG_DEBUG("ptr already exists in the tracker (added by Proxy Lib) - " |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please describe the case when memory already present in the tracker?
Description
Enable Tracking Provider in the Proxy Lib by default
It is currently disabled by default to not enable the Tracking Provider twice if both Proxy Lib and regular UMF is used in the same process (see #365 and fix #380).
However, in CAL scenarios where one process is using the Proxy Lib and the second uses IPC API for memory management, all the allocations in the first process have to be registered in the tracker.
This PR:
Checklist