add relaxed_ordering option (#324)

* add relaxed_ordering option

add an environment variable that allows to control setting the
IBV_ACCESS_RELAXED_ORDERING flag when registering memory with the
ibv_reg_mr* functions.

* missed a spot

[ROCm/rocshmem commit: 2ae2033648]
Bu işleme şunda yer alıyor:
Edgar Gabriel
2025-11-20 08:20:25 -06:00
işlemeyi yapan: GitHub
ebeveyn b126537b55
işleme db4c6293cc
5 değiştirilmiş dosya ile 11 ekleme ve 0 silme
+3
Dosyayı Görüntüle
@@ -756,6 +756,9 @@ void GDABackend::setup_heap_memory_rkey() {
auto *base_heap = heap.get_local_heap_base();
int access = IBV_ACCESS_LOCAL_WRITE | IBV_ACCESS_REMOTE_WRITE | IBV_ACCESS_REMOTE_READ | IBV_ACCESS_REMOTE_ATOMIC;
if (envvar::gda::pcie_relaxed_ordering) {
access |= IBV_ACCESS_RELAXED_ORDERING;
}
heap_mr = ibv.reg_mr(pd_orig, base_heap, heap.get_size(), access);
CHECK_NNULL(heap_mr, "ibv_reg_mr");
+3
Dosyayı Görüntüle
@@ -38,6 +38,9 @@ QueuePair::QueuePair(struct ibv_pd* pd, int gda_provider) {
| IBV_ACCESS_REMOTE_READ
| IBV_ACCESS_REMOTE_ATOMIC;
if (envvar::gda::pcie_relaxed_ordering) {
access |= IBV_ACCESS_RELAXED_ORDERING;
}
allocator.allocate((void**)&nonfetching_atomic, 8);
allocator.allocate((void**)&fetching_atomic, 8 * FETCHING_ATOMIC_CNT);
allocator.allocate((void**)&fetching_atomic_freelist, sizeof(FreeListT*));