ab8ed177f5
This commit fixes several bugs in the registration cache code: - Fix a programming error in the grdma invalidation function that can cause an infinite loop if more than 100 registrations are associated with a munmapped region. This happens because the mca_rcache_base_vma_find_all function returns the same 100 registrations on each call. This has been fixed by adding an iterate function to the vma tree interface. - Always obtain the vma lock when needed. This is required because there may be other threads in the system even if opal_using_threads() is false. Additionally, since it is safe to do so (the vma lock is recursive) the vma interface has been made thread safe. - Avoid calling free() while holding a lock. This avoids race conditions with locks held outside the Open MPI code. Fixes open-mpi/ompi#1654. Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov> |
||
---|---|---|
.. | ||
base.h | ||
help-rcache-base.txt | ||
Makefile.am | ||
rcache_base_create.c | ||
rcache_base_frame.c | ||
rcache_base_mem_cb.c | ||
rcache_base_mem_cb.h | ||
rcache_base_vma_tree.c | ||
rcache_base_vma_tree.h | ||
rcache_base_vma.c | ||
rcache_base_vma.h |