@@ -148,7 +148,7 @@ void test_efa_rdm_mr_reg_cuda_memory(struct efa_resource **state)
148148 struct fid_mr * mr = NULL ;
149149 struct fi_mr_attr mr_reg_attr = { 0 };
150150 struct iovec iovec ;
151- int err ;
151+ int err , baseline_ct , baseline_sz ;
152152
153153 if (hmem_ops [FI_HMEM_CUDA ].initialized &&
154154 g_efa_hmem_info [FI_HMEM_CUDA ].p2p_supported_by_device ) {
@@ -161,7 +161,9 @@ void test_efa_rdm_mr_reg_cuda_memory(struct efa_resource **state)
161161
162162 efa_domain = container_of (resource -> domain , struct efa_domain ,
163163 util_domain .domain_fid );
164- test_efa_mr_impl (efa_domain , mr , 0 , 0 , false);
164+ /* fi_endpoint calls ofi_bufpool_grow, which registers mr */
165+ baseline_ct = efa_domain -> ibv_mr_reg_ct ;
166+ baseline_sz = efa_domain -> ibv_mr_reg_sz ;
165167
166168 err = ofi_cudaMalloc (& buf , mr_size );
167169 assert_int_equal (err , 0 );
@@ -178,10 +180,10 @@ void test_efa_rdm_mr_reg_cuda_memory(struct efa_resource **state)
178180 assert_int_equal (err , 0 );
179181
180182 /* FI_MR_DMABUF flag was not set, so GDRCopy should be registered if available */
181- test_efa_mr_impl (efa_domain , mr , 1 , mr_size , true);
183+ test_efa_mr_impl (efa_domain , mr , baseline_ct + 1 , baseline_sz + mr_size , true);
182184
183185 assert_int_equal (fi_close (& mr -> fid ), 0 );
184- test_efa_mr_impl (efa_domain , NULL , 0 , 0 , false);
186+ test_efa_mr_impl (efa_domain , NULL , baseline_ct , baseline_sz , false);
185187
186188 err = ofi_cudaFree (buf );
187189 assert_int_equal (err , 0 );
@@ -204,7 +206,7 @@ void test_efa_direct_mr_reg_no_gdrcopy(struct efa_resource **state)
204206 struct fid_mr * mr = NULL ;
205207 struct fi_mr_attr mr_reg_attr = { 0 };
206208 struct iovec iovec ;
207- int err ;
209+ int err , baseline_ct , baseline_sz ;
208210
209211 if (g_efa_hmem_info [FI_HMEM_CUDA ].initialized &&
210212 g_efa_hmem_info [FI_HMEM_CUDA ].p2p_supported_by_device ) {
@@ -217,7 +219,9 @@ void test_efa_direct_mr_reg_no_gdrcopy(struct efa_resource **state)
217219
218220 efa_domain = container_of (resource -> domain , struct efa_domain ,
219221 util_domain .domain_fid );
220- test_efa_mr_impl (efa_domain , mr , 0 , 0 , false);
222+ /* fi_endpoint calls ofi_bufpool_grow, which registers mr */
223+ baseline_ct = efa_domain -> ibv_mr_reg_ct ;
224+ baseline_sz = efa_domain -> ibv_mr_reg_sz ;
221225
222226 err = ofi_cudaMalloc (& buf , mr_size );
223227 assert_int_equal (err , 0 );
@@ -234,10 +238,10 @@ void test_efa_direct_mr_reg_no_gdrcopy(struct efa_resource **state)
234238 assert_int_equal (err , 0 );
235239
236240 /* no GDRCopy in the efa-direct path */
237- test_efa_mr_impl (efa_domain , mr , 1 , mr_size , false);
241+ test_efa_mr_impl (efa_domain , mr , baseline_ct + 1 , baseline_sz + mr_size , false);
238242
239243 assert_int_equal (fi_close (& mr -> fid ), 0 );
240- test_efa_mr_impl (efa_domain , NULL , 0 , 0 , false);
244+ test_efa_mr_impl (efa_domain , NULL , baseline_ct , baseline_sz , false);
241245
242246 err = ofi_cudaFree (buf );
243247 assert_int_equal (err , 0 );
0 commit comments