-
Notifications
You must be signed in to change notification settings - Fork 28
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
Implement IPC cache for umfOpenIPCHandle function #736
base: main
Are you sure you want to change the base?
Conversation
ab7b9ee
to
b969903
Compare
4fd30e3
to
8a96eb0
Compare
8a96eb0
to
b84c05c
Compare
50b1d4e
to
3d012df
Compare
0823eaf
to
cb6248f
Compare
fc2f15b
to
8b3626e
Compare
8b3626e
to
a239fa1
Compare
8705c3b
to
fba0eb3
Compare
fba0eb3
to
31fe423
Compare
d1e2e55
to
d10b8a8
Compare
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.
Please enable lines no: 356 and 359:
unified-memory-framework/test/ipcFixtures.hpp
Lines 355 to 359 in cdc0310
// TODO fix it - it does not work in case of IPC cache hit | |
// EXPECT_EQ(stat.allocCount, stat.getCount); | |
EXPECT_EQ(stat.getCount, stat.putCount); | |
// TODO fix it - it does not work in case of IPC cache hit | |
// EXPECT_EQ(stat.openCount, stat.getCount); |
It seems that the check in the line no 356:
EXPECT_EQ(stat.allocCount, stat.getCount);
still fails in the umf-provider_devdax_memory
test:
[ RUN ] DevDaxProviderDifferentPoolsTest/umfIpcTest.AllocFreeAllocTest/2
/home/ldorau/work/unified-memory-framework/test/ipcFixtures.hpp:354: Failure
Expected equality of these values:
stat.allocCount
Which is: 5
stat.getCount
Which is: 1
[ FAILED ] DevDaxProviderDifferentPoolsTest/umfIpcTest.AllocFreeAllocTest/2, where GetParam() = (0x7f3e254f5660, NULL, 0x7f3e254f5200, 0x55cdc299f760, 0x55cdc299f048, false) (0 ms)
...
[ FAILED ] 1 test, listed below:
[ FAILED ] DevDaxProviderDifferentPoolsTest/umfIpcTest.AllocFreeAllocTest/2, where GetParam() = (0x7f3e254f5660, NULL, 0x7f3e254f5200, 0x55cdc299f760, 0x55cdc299f048, false)
1 FAILED TEST
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.
Please next time do not include half done features. Untested/unused features deceases code coverage, but also they can be detected by static analyze tools as an bugs - in short they might cause troubles after the merge. Also nothing is more permanent that temporary solution, but i trust you that it isn't a case here ;)
Done. The issue was caused by the implementation of a scalable pool. When we do the first |
@vinser52 CI builds fail |
Yeah, I saw that. I cannot reproduce it locally. My guess is that in case of CI there are some limits exceed with scalable pool because it uses 2MB slabs. So I can try to decrease memory pressure by decreasing number of allocations in corresponding test or disable test with scalable pool for now. I will investigate today. |
5e688a1
to
a39b9fc
Compare
a39b9fc
to
99e7c42
Compare
@bratpiorka I just rebased the branch because there was a conflict with |
Description
This PR adds initial set of changes to implement cache for opened IPC handles.
The new third-party data structure (uthash - has map implementation) is added. The same data structure is used by MPI to implement IPC cache. Here is the uthash documentation. Here is the original source repo
Fixes: #403
Checklist