Skip to content

Commit 6b8887c

Browse files
committed
btl/am-rdma: Disable underlying flush
Disable the underlying flush() call when using the am-rdma interfce. The current code does not properly handle flushing between the am-rdma and underlying code properly, so it is quite easy to end up with flush not behaving the way users expect. Since there are currently no callers that rely on a btl having both flush and am-rdma interfaces, explicitly disable the case for now. Signed-off-by: Brian Barrett <bbarrett@amazon.com>
1 parent 3f8d80f commit 6b8887c

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

opal/mca/btl/base/btl_base_am_rdma.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,6 +1145,13 @@ int mca_btl_base_am_rdma_init(mca_btl_base_module_t *btl)
11451145
operation_alignment = btl->btl_put_alignment;
11461146
}
11471147

1148+
/* TODO: Ideally, we would swap the BTL's flush for our own
1149+
* implementation which completed all outstanding transactions on
1150+
* that BTL and then called the underlying flush(). Given the
1151+
* work and the lack of use case today, we instead just remove
1152+
* flush support from the underlying BTL. */
1153+
btl->btl_flush = NULL;
1154+
11481155
if (!(btl->btl_flags & MCA_BTL_FLAGS_PUT)) {
11491156
btl->btl_flags |= MCA_BTL_FLAGS_PUT_AM;
11501157
btl->btl_put_limit = max_operation_size - sizeof(am_rdma_hdr_t);

0 commit comments

Comments
 (0)