1
1

OSHMEM: fixes addr_acessible()

check every possible transport

Signed-off-by: Alex Mikheev <alexm@mellanox.com>
Этот коммит содержится в:
Alex Mikheev 2016-10-27 14:15:35 +03:00
родитель 23c3dc8345
Коммит 61bd59a369
2 изменённых файлов: 13 добавлений и 2 удалений

Просмотреть файл

@ -226,6 +226,11 @@ static inline sshmem_mkey_t *mca_memheap_base_get_cached_mkey(int pe,
return mca_memheap_base_get_cached_mkey_slow(s, pe, va, btl_id, rva);
}
static inline int mca_memheap_base_num_transports(void)
{
return memheap_map->num_transports;
}
END_C_DECLS
#endif /* MCA_MEMHEAP_BASE_H */

Просмотреть файл

@ -26,10 +26,16 @@ int shmem_addr_accessible(const void *addr, int pe)
{
void* rva;
sshmem_mkey_t *mkey;
int i;
RUNTIME_CHECK_INIT();
mkey = mca_memheap_base_get_cached_mkey(pe, (void *)addr, oshmem_get_transport_id(pe), &rva);
return mkey ? 1 : 0;
for (i = 0; i < mca_memheap_base_num_transports(); i++) {
mkey = mca_memheap_base_get_cached_mkey(pe, (void *)addr, i, &rva);
if (mkey) {
return 1;
}
}
return 0;
}