@@ -1693,10 +1693,6 @@ static int create_ep(opal_btl_usnic_module_t* module,
1693
1693
inet_ntoa (sin -> sin_addr ),
1694
1694
ntohs (sin -> sin_port ));
1695
1695
1696
- /* actual sizes */
1697
- channel -> chan_rd_num = channel -> info -> rx_attr -> size ;
1698
- channel -> chan_sd_num = channel -> info -> tx_attr -> size ;
1699
-
1700
1696
return OPAL_SUCCESS ;
1701
1697
}
1702
1698
@@ -1739,7 +1735,8 @@ static int init_one_channel(opal_btl_usnic_module_t *module,
1739
1735
int index ,
1740
1736
int max_msg_size ,
1741
1737
int rd_num ,
1742
- int sd_num )
1738
+ int sd_num ,
1739
+ int cq_num )
1743
1740
{
1744
1741
int i ;
1745
1742
int rc ;
@@ -1769,7 +1766,7 @@ static int init_one_channel(opal_btl_usnic_module_t *module,
1769
1766
memset (& cq_attr , 0 , sizeof (cq_attr ));
1770
1767
cq_attr .format = FI_CQ_FORMAT_CONTEXT ;
1771
1768
cq_attr .wait_obj = FI_WAIT_NONE ;
1772
- cq_attr .size = module -> cq_num ;
1769
+ cq_attr .size = cq_num ;
1773
1770
rc = fi_cq_open (module -> domain , & cq_attr , & channel -> cq , NULL );
1774
1771
if (0 != rc ) {
1775
1772
opal_show_help ("help-mpi-btl-usnic.txt" ,
@@ -1967,6 +1964,11 @@ static void init_find_transport_header_len(opal_btl_usnic_module_t *module)
1967
1964
*/
1968
1965
static void init_queue_lengths (opal_btl_usnic_module_t * module )
1969
1966
{
1967
+ bool cq_is_sum = false;
1968
+ if (-1 == mca_btl_usnic_component .cq_num ) {
1969
+ cq_is_sum = true;
1970
+ }
1971
+
1970
1972
if (-1 == mca_btl_usnic_component .sd_num ) {
1971
1973
module -> sd_num = module -> fabric_info -> tx_attr -> size ;
1972
1974
} else {
@@ -1977,7 +1979,7 @@ static void init_queue_lengths(opal_btl_usnic_module_t *module)
1977
1979
} else {
1978
1980
module -> rd_num = mca_btl_usnic_component .rd_num ;
1979
1981
}
1980
- if (-1 == mca_btl_usnic_component . cq_num ) {
1982
+ if (cq_is_sum ) {
1981
1983
module -> cq_num = module -> rd_num + module -> sd_num ;
1982
1984
} else {
1983
1985
module -> cq_num = mca_btl_usnic_component .cq_num ;
@@ -2012,6 +2014,11 @@ static void init_queue_lengths(opal_btl_usnic_module_t *module)
2012
2014
module -> fabric_info -> rx_attr -> size ) {
2013
2015
module -> prio_rd_num = module -> fabric_info -> rx_attr -> size ;
2014
2016
}
2017
+ if (cq_is_sum ) {
2018
+ module -> prio_cq_num = module -> prio_rd_num + module -> prio_sd_num ;
2019
+ } else {
2020
+ module -> prio_cq_num = module -> cq_num ;
2021
+ }
2015
2022
}
2016
2023
2017
2024
static void init_payload_lengths (opal_btl_usnic_module_t * module )
@@ -2217,14 +2224,14 @@ static int init_channels(opal_btl_usnic_module_t *module)
2217
2224
rc = init_one_channel (module ,
2218
2225
USNIC_PRIORITY_CHANNEL ,
2219
2226
module -> max_tiny_msg_size ,
2220
- module -> prio_rd_num , module -> prio_sd_num );
2227
+ module -> prio_rd_num , module -> prio_sd_num , module -> prio_cq_num );
2221
2228
if (rc != OPAL_SUCCESS ) {
2222
2229
goto destroy ;
2223
2230
}
2224
2231
rc = init_one_channel (module ,
2225
2232
USNIC_DATA_CHANNEL ,
2226
2233
module -> fabric_info -> ep_attr -> max_msg_size ,
2227
- module -> rd_num , module -> sd_num );
2234
+ module -> rd_num , module -> sd_num , module -> cq_num );
2228
2235
if (rc != OPAL_SUCCESS ) {
2229
2236
goto destroy ;
2230
2237
}
0 commit comments