Lines Matching refs:ss

60 eib_rsrc_setup_bufs(eib_t *ss, int *err)  in eib_rsrc_setup_bufs()  argument
62 if (eib_rsrc_setup_txbufs(ss, err) != EIB_E_SUCCESS) in eib_rsrc_setup_bufs()
65 if (ss->ei_caps->cp_lso_maxlen && ss->ei_caps->cp_cksum_flags && in eib_rsrc_setup_bufs()
66 ss->ei_caps->cp_resv_lkey_capab) { in eib_rsrc_setup_bufs()
67 if (eib_rsrc_setup_lsobufs(ss, err) != EIB_E_SUCCESS) { in eib_rsrc_setup_bufs()
68 eib_rb_rsrc_setup_txbufs(ss, B_FALSE); in eib_rsrc_setup_bufs()
73 if (eib_rsrc_setup_rxbufs(ss, err) != EIB_E_SUCCESS) { in eib_rsrc_setup_bufs()
74 eib_rb_rsrc_setup_lsobufs(ss, B_FALSE); in eib_rsrc_setup_bufs()
75 eib_rb_rsrc_setup_txbufs(ss, B_FALSE); in eib_rsrc_setup_bufs()
83 eib_rsrc_grab_swqes(eib_t *ss, eib_wqe_t **wqes, uint_t n_req, uint_t *actual, in eib_rsrc_grab_swqes() argument
91 ASSERT(ss->ei_tx != NULL); in eib_rsrc_grab_swqes()
93 ret = eib_rsrc_grab_wqes(ss, ss->ei_tx, wqes, n_req, actual, pri); in eib_rsrc_grab_swqes()
118 eib_rsrc_grab_rwqes(eib_t *ss, eib_wqe_t **wqes, uint_t n_req, uint_t *actual, in eib_rsrc_grab_rwqes() argument
121 ASSERT(ss->ei_rx != NULL); in eib_rsrc_grab_rwqes()
123 return (eib_rsrc_grab_wqes(ss, ss->ei_rx, wqes, n_req, actual, pri)); in eib_rsrc_grab_rwqes()
127 eib_rsrc_grab_lsobufs(eib_t *ss, uint_t req_sz, ibt_wr_ds_t *sgl, uint32_t *nds) in eib_rsrc_grab_lsobufs() argument
129 eib_lsobkt_t *bkt = ss->ei_lso; in eib_rsrc_grab_lsobufs()
202 eib_rsrc_grab_swqe(eib_t *ss, int pri) in eib_rsrc_grab_swqe() argument
207 ASSERT(ss->ei_tx != NULL); in eib_rsrc_grab_swqe()
208 (void) eib_rsrc_grab_wqes(ss, ss->ei_tx, &wqe, 1, NULL, pri); in eib_rsrc_grab_swqe()
242 eib_rsrc_grab_rwqe(eib_t *ss, int pri) in eib_rsrc_grab_rwqe() argument
246 ASSERT(ss->ei_rx != NULL); in eib_rsrc_grab_rwqe()
247 (void) eib_rsrc_grab_wqes(ss, ss->ei_rx, &wqe, 1, NULL, pri); in eib_rsrc_grab_rwqe()
253 eib_rsrc_return_swqe(eib_t *ss, eib_wqe_t *wqe, eib_chan_t *chan) in eib_rsrc_return_swqe() argument
255 ASSERT(ss->ei_tx != NULL); in eib_rsrc_return_swqe()
257 eib_rsrc_return_wqes(ss, ss->ei_tx, &wqe, 1); in eib_rsrc_return_swqe()
259 eib_rsrc_decr_posted_swqe(ss, chan); in eib_rsrc_return_swqe()
265 eib_rsrc_return_rwqe(eib_t *ss, eib_wqe_t *wqe, eib_chan_t *chan) in eib_rsrc_return_rwqe() argument
267 ASSERT(ss->ei_rx != NULL); in eib_rsrc_return_rwqe()
269 eib_rsrc_return_wqes(ss, ss->ei_rx, &wqe, 1); in eib_rsrc_return_rwqe()
271 eib_rsrc_decr_posted_rwqe(ss, chan); in eib_rsrc_return_rwqe()
276 eib_rsrc_return_lsobufs(eib_t *ss, ibt_wr_ds_t *sgl_p, uint32_t nds) in eib_rsrc_return_lsobufs() argument
278 eib_lsobkt_t *bkt = ss->ei_lso; in eib_rsrc_return_lsobufs()
328 eib_rsrc_decr_posted_swqe(eib_t *ss, eib_chan_t *chan) in eib_rsrc_decr_posted_swqe() argument
343 eib_rsrc_decr_posted_rwqe(eib_t *ss, eib_chan_t *chan) in eib_rsrc_decr_posted_rwqe() argument
372 mutex_enter(&ss->ei_rxpost_lock); in eib_rsrc_decr_posted_rwqe()
375 for (tail = ss->ei_rxpost; tail; tail = tail->ch_rxpost_next) { in eib_rsrc_decr_posted_rwqe()
382 ss->ei_rxpost = chan; in eib_rsrc_decr_posted_rwqe()
385 cv_signal(&ss->ei_rxpost_cv); in eib_rsrc_decr_posted_rwqe()
386 mutex_exit(&ss->ei_rxpost_lock); in eib_rsrc_decr_posted_rwqe()
391 eib_rsrc_txwqes_needed(eib_t *ss) in eib_rsrc_txwqes_needed() argument
393 eib_wqe_pool_t *wp = ss->ei_tx; in eib_rsrc_txwqes_needed()
395 EIB_INCR_COUNTER(&ss->ei_stats->st_noxmitbuf); in eib_rsrc_txwqes_needed()
406 eib_rsrc_lsobufs_needed(eib_t *ss) in eib_rsrc_lsobufs_needed() argument
408 eib_lsobkt_t *bkt = ss->ei_lso; in eib_rsrc_lsobufs_needed()
410 EIB_INCR_COUNTER(&ss->ei_stats->st_noxmitbuf); in eib_rsrc_lsobufs_needed()
413 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rsrc_lsobufs_needed()
457 eib_rb_rsrc_setup_bufs(eib_t *ss, boolean_t force) in eib_rb_rsrc_setup_bufs() argument
459 eib_rb_rsrc_setup_rxbufs(ss, force); in eib_rb_rsrc_setup_bufs()
460 eib_rb_rsrc_setup_lsobufs(ss, force); in eib_rb_rsrc_setup_bufs()
461 eib_rb_rsrc_setup_txbufs(ss, force); in eib_rb_rsrc_setup_bufs()
465 eib_rsrc_setup_txbufs(eib_t *ss, int *err) in eib_rsrc_setup_txbufs() argument
476 uint_t mtu = ss->ei_props->ep_mtu; in eib_rsrc_setup_txbufs()
486 if (ss->ei_tx != NULL) in eib_rsrc_setup_txbufs()
499 lso_enabled = ss->ei_caps->cp_lso_maxlen && in eib_rsrc_setup_txbufs()
500 ss->ei_caps->cp_cksum_flags && ss->ei_caps->cp_resv_lkey_capab; in eib_rsrc_setup_txbufs()
504 eib_rsrc_init_wqe_pool(ss, &ss->ei_tx, tx_bufsz, EIB_WP_TYPE_TX); in eib_rsrc_setup_txbufs()
505 tx = ss->ei_tx; in eib_rsrc_setup_txbufs()
515 ret = ibt_register_mr(ss->ei_hca_hdl, ss->ei_pd_hdl, &attr, in eib_rsrc_setup_txbufs()
518 EIB_DPRINTF_ERR(ss->ei_instance, "eib_rsrc_setup_txbufs: " in eib_rsrc_setup_txbufs()
538 ret = ibt_alloc_ud_dest(ss->ei_hca_hdl, in eib_rsrc_setup_txbufs()
539 IBT_UD_DEST_NO_FLAGS, ss->ei_pd_hdl, &dest); in eib_rsrc_setup_txbufs()
541 EIB_DPRINTF_ERR(ss->ei_instance, in eib_rsrc_setup_txbufs()
544 "failed, ret=%d", ss->ei_hca_hdl, ret); in eib_rsrc_setup_txbufs()
625 kt = thread_create(NULL, 0, eib_monitor_tx_wqes, ss, 0, in eib_rsrc_setup_txbufs()
627 ss->ei_txwqe_monitor = kt->t_did; in eib_rsrc_setup_txbufs()
632 eib_rb_rsrc_setup_txbufs(ss, B_FALSE); in eib_rsrc_setup_txbufs()
637 eib_rsrc_setup_rxbufs(eib_t *ss, int *err) in eib_rsrc_setup_rxbufs() argument
645 uint_t mtu = ss->ei_props->ep_mtu; in eib_rsrc_setup_rxbufs()
659 if (ss->ei_rx != NULL) in eib_rsrc_setup_rxbufs()
672 eib_rsrc_init_wqe_pool(ss, &ss->ei_rx, in eib_rsrc_setup_rxbufs()
674 rx = ss->ei_rx; in eib_rsrc_setup_rxbufs()
684 ret = ibt_register_mr(ss->ei_hca_hdl, ss->ei_pd_hdl, &attr, in eib_rsrc_setup_rxbufs()
687 EIB_DPRINTF_ERR(ss->ei_instance, "eib_rsrc_setup_rxbufs: " in eib_rsrc_setup_rxbufs()
748 eib_rb_rsrc_setup_rxbufs(ss, B_FALSE); in eib_rsrc_setup_rxbufs()
753 eib_rsrc_setup_lsobufs(eib_t *ss, int *err) in eib_rsrc_setup_lsobufs() argument
781 ret = ibt_register_mr(ss->ei_hca_hdl, ss->ei_pd_hdl, &attr, in eib_rsrc_setup_lsobufs()
785 EIB_DPRINTF_ERR(ss->ei_instance, "eib_rsrc_setup_lsobufs: " in eib_rsrc_setup_lsobufs()
834 ss->ei_lso = bkt; in eib_rsrc_setup_lsobufs()
840 kt = thread_create(NULL, 0, eib_monitor_lso_bufs, ss, 0, in eib_rsrc_setup_lsobufs()
842 ss->ei_lsobufs_monitor = kt->t_did; in eib_rsrc_setup_lsobufs()
848 eib_rsrc_init_wqe_pool(eib_t *ss, eib_wqe_pool_t **wpp, ib_memlen_t bufsz, in eib_rsrc_init_wqe_pool() argument
867 wp->wp_ss = ss; in eib_rsrc_init_wqe_pool()
892 eib_rsrc_fini_wqe_pool(eib_t *ss, eib_wqe_pool_t **wpp) in eib_rsrc_fini_wqe_pool() argument
913 eib_rsrc_ok_to_free_pool(eib_t *ss, eib_wqe_pool_t *wp, boolean_t force) in eib_rsrc_ok_to_free_pool() argument
966 eib_rsrc_grab_wqes(eib_t *ss, eib_wqe_pool_t *wp, eib_wqe_t **wqes, in eib_rsrc_grab_wqes() argument
1040 eib_rsrc_return_wqes(eib_t *ss, eib_wqe_pool_t *wp, eib_wqe_t **wqes, in eib_rsrc_return_wqes() argument
1100 eib_rb_rsrc_setup_txbufs(eib_t *ss, boolean_t force) in eib_rb_rsrc_setup_txbufs() argument
1102 eib_wqe_pool_t *wp = ss->ei_tx; in eib_rb_rsrc_setup_txbufs()
1118 if (eib_rsrc_ok_to_free_pool(ss, wp, force)) { in eib_rb_rsrc_setup_txbufs()
1119 eib_stop_monitor_tx_wqes(ss); in eib_rb_rsrc_setup_txbufs()
1129 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_rsrc_setup_txbufs()
1137 if ((ret = ibt_deregister_mr(ss->ei_hca_hdl, in eib_rb_rsrc_setup_txbufs()
1139 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_rsrc_setup_txbufs()
1145 eib_rsrc_fini_wqe_pool(ss, &ss->ei_tx); in eib_rb_rsrc_setup_txbufs()
1150 eib_rb_rsrc_setup_rxbufs(eib_t *ss, boolean_t force) in eib_rb_rsrc_setup_rxbufs() argument
1152 eib_wqe_pool_t *rx = ss->ei_rx; in eib_rb_rsrc_setup_rxbufs()
1162 if (eib_rsrc_ok_to_free_pool(ss, rx, force)) { in eib_rb_rsrc_setup_rxbufs()
1164 if ((ret = ibt_deregister_mr(ss->ei_hca_hdl, in eib_rb_rsrc_setup_rxbufs()
1166 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_rsrc_setup_rxbufs()
1173 eib_rsrc_fini_wqe_pool(ss, &ss->ei_rx); in eib_rb_rsrc_setup_rxbufs()
1178 eib_rb_rsrc_setup_lsobufs(eib_t *ss, boolean_t force) in eib_rb_rsrc_setup_lsobufs() argument
1186 if ((bkt = ss->ei_lso) == NULL) in eib_rb_rsrc_setup_lsobufs()
1194 if (eib_stop_monitor_lso_bufs(ss, force) != EIB_E_SUCCESS) in eib_rb_rsrc_setup_lsobufs()
1209 if ((ret = ibt_deregister_mr(ss->ei_hca_hdl, in eib_rb_rsrc_setup_lsobufs()
1211 EIB_DPRINTF_WARN(ss->ei_instance, in eib_rb_rsrc_setup_lsobufs()
1232 ss->ei_lso = NULL; in eib_rb_rsrc_setup_lsobufs()