ib_send.c (498495dba268b20e8eadd7fe93c140c68b6cc9d2) ib_send.c (eee2fa6ab3225192d6d894c54a6fb02ac9efdff6)
1/*
1/*
2 * Copyright (c) 2006 Oracle. All rights reserved.
2 * Copyright (c) 2006, 2017 Oracle and/or its affiliates. All rights reserved.
3 *
4 * This software is available to you under a choice of one of two
5 * licenses. You may choose to be licensed under the terms of the GNU
6 * General Public License (GPL) Version 2, available from the file
7 * COPYING in the main directory of this source tree, or the
8 * OpenIB.org BSD license below:
9 *
10 * Redistribution and use in source and binary forms, with or

--- 289 unchanged lines hidden (view full) ---

300 nr_sig = 0;
301
302 if (test_and_clear_bit(RDS_LL_SEND_FULL, &conn->c_flags) ||
303 test_bit(0, &conn->c_map_queued))
304 queue_delayed_work(rds_wq, &conn->c_send_w, 0);
305
306 /* We expect errors as the qp is drained during shutdown */
307 if (wc->status != IB_WC_SUCCESS && rds_conn_up(conn)) {
3 *
4 * This software is available to you under a choice of one of two
5 * licenses. You may choose to be licensed under the terms of the GNU
6 * General Public License (GPL) Version 2, available from the file
7 * COPYING in the main directory of this source tree, or the
8 * OpenIB.org BSD license below:
9 *
10 * Redistribution and use in source and binary forms, with or

--- 289 unchanged lines hidden (view full) ---

300 nr_sig = 0;
301
302 if (test_and_clear_bit(RDS_LL_SEND_FULL, &conn->c_flags) ||
303 test_bit(0, &conn->c_map_queued))
304 queue_delayed_work(rds_wq, &conn->c_send_w, 0);
305
306 /* We expect errors as the qp is drained during shutdown */
307 if (wc->status != IB_WC_SUCCESS && rds_conn_up(conn)) {
308 rds_ib_conn_error(conn, "send completion on <%pI4,%pI4> had status %u (%s), disconnecting and reconnecting\n",
308 rds_ib_conn_error(conn, "send completion on <%pI6c,%pI6c> had status %u (%s), disconnecting and reconnecting\n",
309 &conn->c_laddr, &conn->c_faddr, wc->status,
310 ib_wc_status_msg(wc->status));
311 }
312}
313
314/*
315 * This is the main function for allocating credits when sending
316 * messages.

--- 408 unchanged lines hidden (view full) ---

725
726 /* XXX need to worry about failed_wr and partial sends. */
727 failed_wr = &first->s_wr;
728 ret = ib_post_send(ic->i_cm_id->qp, &first->s_wr, &failed_wr);
729 rdsdebug("ic %p first %p (wr %p) ret %d wr %p\n", ic,
730 first, &first->s_wr, ret, failed_wr);
731 BUG_ON(failed_wr != &first->s_wr);
732 if (ret) {
309 &conn->c_laddr, &conn->c_faddr, wc->status,
310 ib_wc_status_msg(wc->status));
311 }
312}
313
314/*
315 * This is the main function for allocating credits when sending
316 * messages.

--- 408 unchanged lines hidden (view full) ---

725
726 /* XXX need to worry about failed_wr and partial sends. */
727 failed_wr = &first->s_wr;
728 ret = ib_post_send(ic->i_cm_id->qp, &first->s_wr, &failed_wr);
729 rdsdebug("ic %p first %p (wr %p) ret %d wr %p\n", ic,
730 first, &first->s_wr, ret, failed_wr);
731 BUG_ON(failed_wr != &first->s_wr);
732 if (ret) {
733 printk(KERN_WARNING "RDS/IB: ib_post_send to %pI4 "
733 printk(KERN_WARNING "RDS/IB: ib_post_send to %pI6c "
734 "returned %d\n", &conn->c_faddr, ret);
735 rds_ib_ring_unalloc(&ic->i_send_ring, work_alloc);
736 rds_ib_sub_signaled(ic, nr_sig);
737 if (prev->s_op) {
738 ic->i_data_op = prev->s_op;
739 prev->s_op = NULL;
740 }
741

--- 80 unchanged lines hidden (view full) ---

822 atomic_add(nr_sig, &ic->i_signaled_sends);
823
824 failed_wr = &send->s_atomic_wr.wr;
825 ret = ib_post_send(ic->i_cm_id->qp, &send->s_atomic_wr.wr, &failed_wr);
826 rdsdebug("ic %p send %p (wr %p) ret %d wr %p\n", ic,
827 send, &send->s_atomic_wr, ret, failed_wr);
828 BUG_ON(failed_wr != &send->s_atomic_wr.wr);
829 if (ret) {
734 "returned %d\n", &conn->c_faddr, ret);
735 rds_ib_ring_unalloc(&ic->i_send_ring, work_alloc);
736 rds_ib_sub_signaled(ic, nr_sig);
737 if (prev->s_op) {
738 ic->i_data_op = prev->s_op;
739 prev->s_op = NULL;
740 }
741

--- 80 unchanged lines hidden (view full) ---

822 atomic_add(nr_sig, &ic->i_signaled_sends);
823
824 failed_wr = &send->s_atomic_wr.wr;
825 ret = ib_post_send(ic->i_cm_id->qp, &send->s_atomic_wr.wr, &failed_wr);
826 rdsdebug("ic %p send %p (wr %p) ret %d wr %p\n", ic,
827 send, &send->s_atomic_wr, ret, failed_wr);
828 BUG_ON(failed_wr != &send->s_atomic_wr.wr);
829 if (ret) {
830 printk(KERN_WARNING "RDS/IB: atomic ib_post_send to %pI4 "
830 printk(KERN_WARNING "RDS/IB: atomic ib_post_send to %pI6c "
831 "returned %d\n", &conn->c_faddr, ret);
832 rds_ib_ring_unalloc(&ic->i_send_ring, work_alloc);
833 rds_ib_sub_signaled(ic, nr_sig);
834 goto out;
835 }
836
837 if (unlikely(failed_wr != &send->s_atomic_wr.wr)) {
838 printk(KERN_WARNING "RDS/IB: atomic ib_post_send() rc=%d, but failed_wqe updated!\n", ret);

--- 123 unchanged lines hidden (view full) ---

962 atomic_add(nr_sig, &ic->i_signaled_sends);
963
964 failed_wr = &first->s_rdma_wr.wr;
965 ret = ib_post_send(ic->i_cm_id->qp, &first->s_rdma_wr.wr, &failed_wr);
966 rdsdebug("ic %p first %p (wr %p) ret %d wr %p\n", ic,
967 first, &first->s_rdma_wr.wr, ret, failed_wr);
968 BUG_ON(failed_wr != &first->s_rdma_wr.wr);
969 if (ret) {
831 "returned %d\n", &conn->c_faddr, ret);
832 rds_ib_ring_unalloc(&ic->i_send_ring, work_alloc);
833 rds_ib_sub_signaled(ic, nr_sig);
834 goto out;
835 }
836
837 if (unlikely(failed_wr != &send->s_atomic_wr.wr)) {
838 printk(KERN_WARNING "RDS/IB: atomic ib_post_send() rc=%d, but failed_wqe updated!\n", ret);

--- 123 unchanged lines hidden (view full) ---

962 atomic_add(nr_sig, &ic->i_signaled_sends);
963
964 failed_wr = &first->s_rdma_wr.wr;
965 ret = ib_post_send(ic->i_cm_id->qp, &first->s_rdma_wr.wr, &failed_wr);
966 rdsdebug("ic %p first %p (wr %p) ret %d wr %p\n", ic,
967 first, &first->s_rdma_wr.wr, ret, failed_wr);
968 BUG_ON(failed_wr != &first->s_rdma_wr.wr);
969 if (ret) {
970 printk(KERN_WARNING "RDS/IB: rdma ib_post_send to %pI4 "
970 printk(KERN_WARNING "RDS/IB: rdma ib_post_send to %pI6c "
971 "returned %d\n", &conn->c_faddr, ret);
972 rds_ib_ring_unalloc(&ic->i_send_ring, work_alloc);
973 rds_ib_sub_signaled(ic, nr_sig);
974 goto out;
975 }
976
977 if (unlikely(failed_wr != &first->s_rdma_wr.wr)) {
978 printk(KERN_WARNING "RDS/IB: ib_post_send() rc=%d, but failed_wqe updated!\n", ret);

--- 17 unchanged lines hidden ---
971 "returned %d\n", &conn->c_faddr, ret);
972 rds_ib_ring_unalloc(&ic->i_send_ring, work_alloc);
973 rds_ib_sub_signaled(ic, nr_sig);
974 goto out;
975 }
976
977 if (unlikely(failed_wr != &first->s_rdma_wr.wr)) {
978 printk(KERN_WARNING "RDS/IB: ib_post_send() rc=%d, but failed_wqe updated!\n", ret);

--- 17 unchanged lines hidden ---