Skip to content

Implement umfPoolCreateFromMemspace() with proxy pool #471

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

Conversation

ldorau
Copy link
Contributor

@ldorau ldorau commented May 7, 2024

Description

Implement umfPoolCreateFromMemspace() with proxy pool.

Checklist

  • Code compiles without errors locally
  • All tests pass locally
  • CI workflows execute properly
  • New tests added, especially if they will fail without my changes
  • All newly added source files have a license

@ldorau ldorau requested a review from a team as a code owner May 7, 2024 15:20
@igchor
Copy link
Member

igchor commented May 7, 2024

Why proxy and not scalable pool? (or even disjoint pool if we scalable is not available)

Fix: os_free(NULL) should return UMF_RESULT_SUCCESS
instead of UMF_RESULT_ERROR_INVALID_ARGUMENT.

Signed-off-by: Lukasz Dorau <[email protected]>
@ldorau ldorau force-pushed the Implement_numa_pool_create_from_memspace_with_proxy_pool branch from f512b7b to 79e7b81 Compare May 8, 2024 07:09
@ldorau
Copy link
Contributor Author

ldorau commented May 8, 2024

Why proxy and not scalable pool? (or even disjoint pool if we scalable is not available)

It was just the first step. I will convert it to the scalable pool with a fallback to the disjoint pool.

@ldorau ldorau marked this pull request as draft May 8, 2024 07:13
@ldorau ldorau force-pushed the Implement_numa_pool_create_from_memspace_with_proxy_pool branch from 79e7b81 to e5f0177 Compare May 8, 2024 08:36
@ldorau
Copy link
Contributor Author

ldorau commented May 8, 2024

Why proxy and not scalable pool? (or even disjoint pool if we scalable is not available)

@igchor It would require linking libumf with libscalable_pool.

See: https://github.com/oneapi-src/unified-memory-framework/actions/runs/8998833427/job/24719757805?pr=471

/usr/bin/ld: ../lib/libumf.a(memory_target_numa.c.o): in function `numa_pool_create_from_memspace':
memory_target_numa.c:(.text+0x1c5): undefined reference to `umfScalablePoolOps'

@ldorau ldorau closed this May 8, 2024
@vinser52
Copy link
Contributor

vinser52 commented May 8, 2024

Why proxy and not scalable pool? (or even disjoint pool if we scalable is not available)

@igchor It would require linking libumf with libscalable_pool.

See: https://github.com/oneapi-src/unified-memory-framework/actions/runs/8998833427/job/24719757805?pr=471

/usr/bin/ld: ../lib/libumf.a(memory_target_numa.c.o): in function `numa_pool_create_from_memspace':
memory_target_numa.c:(.text+0x1c5): undefined reference to `umfScalablePoolOps'

But we agreed in the past that we do not need separate library for scalable pool (the same like with L0 provider). We do not need additional proxy between libumf and libtbbmalloc - libumf can directly try dlopen(libtbbmalloc).

Regarding proxy pool, I think it is useless by default to create a proxy pool. We need some real heap manager by default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants