@@ -136,8 +136,15 @@ static inline unsigned int mca_btl_smcuda_param_register_uint(
136
136
return * storage ;
137
137
}
138
138
139
- static int mca_btl_smcuda_component_verify (void ) {
140
-
139
+ static int mca_btl_smcuda_component_verify (void )
140
+ {
141
+ /* We canot support async memcpy right now */
142
+ if ( (mca_btl_smcuda .super .btl_flags & MCA_BTL_FLAGS_CUDA_COPY_ASYNC_RECV ) ||
143
+ (mca_btl_smcuda .super .btl_flags & MCA_BTL_FLAGS_CUDA_COPY_ASYNC_SEND ) ) {
144
+ opal_output_verbose (10 , opal_btl_base_framework .framework_output ,
145
+ "btl: smcuda: disable all asynchronous memcpy support" );
146
+ }
147
+ mca_btl_smcuda .super .btl_flags &= ~(MCA_BTL_FLAGS_CUDA_COPY_ASYNC_RECV | MCA_BTL_FLAGS_CUDA_COPY_ASYNC_SEND );
141
148
return mca_btl_base_param_verify (& mca_btl_smcuda .super );
142
149
}
143
150
@@ -1100,27 +1107,27 @@ int mca_btl_smcuda_component_progress(void)
1100
1107
}
1101
1108
goto recheck_peer ;
1102
1109
}
1103
- default :
1104
- /* unknown */
1105
- /*
1106
- * This code path should presumably never be called.
1107
- * It's unclear if it should exist or, if so, how it should be written.
1108
- * If we want to return it to the sending process,
1109
- * we have to figure out who the sender is.
1110
- * It seems we need to subtract the mask bits.
1111
- * Then, hopefully this is an sm header that has an smp_rank field.
1112
- * Presumably that means the received header was relative.
1113
- * Or, maybe this code should just be removed.
1114
- */
1115
- opal_output (0 , "mca_btl_smcuda_component_progress read an unknown type of header" );
1116
- hdr = (mca_btl_smcuda_hdr_t * ) RELATIVE2VIRTUAL (hdr );
1117
- peer_smp_rank = hdr -> my_smp_rank ;
1118
- hdr = (mca_btl_smcuda_hdr_t * )((uintptr_t )hdr -> frag |
1119
- MCA_BTL_SMCUDA_FRAG_STATUS_MASK );
1120
- MCA_BTL_SMCUDA_FIFO_WRITE (
1121
- mca_btl_smcuda_component .sm_peers [peer_smp_rank ],
1122
- my_smp_rank , peer_smp_rank , hdr , false, true, rc );
1123
- break ;
1110
+ default :
1111
+ /* unknown */
1112
+ /*
1113
+ * This code path should presumably never be called.
1114
+ * It's unclear if it should exist or, if so, how it should be written.
1115
+ * If we want to return it to the sending process,
1116
+ * we have to figure out who the sender is.
1117
+ * It seems we need to subtract the mask bits.
1118
+ * Then, hopefully this is an sm header that has an smp_rank field.
1119
+ * Presumably that means the received header was relative.
1120
+ * Or, maybe this code should just be removed.
1121
+ */
1122
+ opal_output (0 , "mca_btl_smcuda_component_progress read an unknown type of header" );
1123
+ hdr = (mca_btl_smcuda_hdr_t * ) RELATIVE2VIRTUAL (hdr );
1124
+ peer_smp_rank = hdr -> my_smp_rank ;
1125
+ hdr = (mca_btl_smcuda_hdr_t * )((uintptr_t )hdr -> frag |
1126
+ MCA_BTL_SMCUDA_FRAG_STATUS_MASK );
1127
+ MCA_BTL_SMCUDA_FIFO_WRITE (
1128
+ mca_btl_smcuda_component .sm_peers [peer_smp_rank ],
1129
+ my_smp_rank , peer_smp_rank , hdr , false, true, rc );
1130
+ break ;
1124
1131
}
1125
1132
}
1126
1133
(void )rc ; /* this is safe to ignore as the message is requeued till success */
0 commit comments