From 9d568d37c21789e0a33f7fdf2dbf12965913a612 Mon Sep 17 00:00:00 2001 From: Amir Vadai Date: Tue, 21 Apr 2009 16:07:23 +0300 Subject: [PATCH] sdp: cosmetics changes * renamed ssk->bufs into ssk->tx_credits * renamed SDP_MIN_BUFS into SDP_MIN_TX_CREDITS * get bz struct from skb in a macro Signed-off-by: Amir Vadai --- drivers/infiniband/ulp/sdp/sdp.h | 5 +++-- drivers/infiniband/ulp/sdp/sdp_bcopy.c | 28 +++++++++++++------------- drivers/infiniband/ulp/sdp/sdp_cma.c | 15 +++++++------- drivers/infiniband/ulp/sdp/sdp_main.c | 16 +++++++-------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index a4d3aa2f284b..28f2fec43f44 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -151,6 +151,7 @@ static inline void sdpstats_hist(u32 *h, u32 val, u32 maxidx, int is_log) #define SDP_OP_RECV 0x800000000LL #define SDP_OP_SEND 0x400000000LL +#define BZCOPY_STATE(skb) (*(struct bzcopy_state **)(skb->cb)) #ifndef MIN #define MIN(a, b) (a < b ? a : b) #endif @@ -173,7 +174,7 @@ enum sdp_flags { }; enum { - SDP_MIN_BUFS = 2 + SDP_MIN_TX_CREDITS = 2 }; enum { @@ -288,7 +289,7 @@ struct sdp_sock { unsigned rx_head; unsigned rx_tail; unsigned mseq_ack; - unsigned bufs; + unsigned tx_credits; unsigned max_bufs; /* Initial buffers offered by other side */ unsigned min_bufs; /* Low water mark to wake senders */ diff --git a/drivers/infiniband/ulp/sdp/sdp_bcopy.c b/drivers/infiniband/ulp/sdp/sdp_bcopy.c index c5a0ccffbc22..205b09583c86 100644 --- a/drivers/infiniband/ulp/sdp/sdp_bcopy.c +++ b/drivers/infiniband/ulp/sdp/sdp_bcopy.c @@ -318,7 +318,7 @@ void sdp_post_send(struct sdp_sock *ssk, struct sk_buff *skb, u8 mid) } rc = ib_post_send(ssk->qp, &ssk->tx_wr, &bad_wr); ++ssk->tx_head; - --ssk->bufs; + --ssk->tx_credits; ssk->remote_credits = ssk->rx_head - ssk->rx_tail; if (unlikely(rc)) { sdp_dbg(&ssk->isk.sk, "ib_post_send failed with status %d.\n", rc); @@ -357,7 +357,7 @@ struct sk_buff *sdp_send_completion(struct sdp_sock *ssk, int mseq) ++ssk->tx_tail; /* TODO: AIO and real zcopy cdoe; add their context support here */ - bz = *(struct bzcopy_state **)skb->cb; + bz = BZCOPY_STATE(skb); if (bz) bz->busy--; @@ -471,10 +471,10 @@ void sdp_post_recvs(struct sdp_sock *ssk) scale = 1; while ((likely(ssk->rx_head - ssk->rx_tail < SDP_RX_SIZE) && - (ssk->rx_head - ssk->rx_tail - SDP_MIN_BUFS) * + (ssk->rx_head - ssk->rx_tail - SDP_MIN_TX_CREDITS) * (SDP_HEAD_SIZE + ssk->recv_frags * PAGE_SIZE) + ssk->rcv_nxt - ssk->copied_seq < sk->sk_rcvbuf * scale) || - unlikely(ssk->rx_head - ssk->rx_tail < SDP_MIN_BUFS)) + unlikely(ssk->rx_head - ssk->rx_tail < SDP_MIN_TX_CREDITS)) sdp_post_recv(ssk); } @@ -562,7 +562,7 @@ static inline int sdp_nagle_off(struct sdp_sock *ssk, struct sk_buff *skb) int sdp_post_credits(struct sdp_sock *ssk) { - if (likely(ssk->bufs > 1) && + if (likely(ssk->tx_credits > 1) && likely(ssk->tx_head - ssk->tx_tail < SDP_TX_SIZE)) { struct sk_buff *skb; skb = sdp_stream_alloc_skb(&ssk->isk.sk, @@ -599,7 +599,7 @@ void sdp_post_sends(struct sdp_sock *ssk, int nonagle) if (ssk->recv_request && ssk->rx_tail >= ssk->recv_request_head && - ssk->bufs >= SDP_MIN_BUFS && + ssk->tx_credits >= SDP_MIN_TX_CREDITS && ssk->tx_head - ssk->tx_tail < SDP_TX_SIZE) { struct sdp_chrecvbuf *resp_size; ssk->recv_request = 0; @@ -614,7 +614,7 @@ void sdp_post_sends(struct sdp_sock *ssk, int nonagle) sdp_post_send(ssk, skb, SDP_MID_CHRCVBUF_ACK); } - while (ssk->bufs > SDP_MIN_BUFS && + while (ssk->tx_credits > SDP_MIN_TX_CREDITS && ssk->tx_head - ssk->tx_tail < SDP_TX_SIZE && (skb = ssk->isk.sk.sk_send_head) && sdp_nagle_off(ssk, skb)) { @@ -623,7 +623,7 @@ void sdp_post_sends(struct sdp_sock *ssk, int nonagle) sdp_post_send(ssk, skb, SDP_MID_DATA); } - if (ssk->bufs == SDP_MIN_BUFS && + if (ssk->tx_credits == SDP_MIN_TX_CREDITS && !ssk->sent_request && ssk->tx_head > ssk->sent_request_head + SDP_RESIZE_WAIT && ssk->tx_head - ssk->tx_tail < SDP_TX_SIZE) { @@ -642,11 +642,11 @@ void sdp_post_sends(struct sdp_sock *ssk, int nonagle) } c = ssk->remote_credits; - if (likely(c > SDP_MIN_BUFS)) + if (likely(c > SDP_MIN_TX_CREDITS)) c *= 2; if (unlikely(c < ssk->rx_head - ssk->rx_tail) && - likely(ssk->bufs > 1) && + likely(ssk->tx_credits > 1) && likely(ssk->tx_head - ssk->tx_tail < SDP_TX_SIZE) && likely((1 << ssk->isk.sk.sk_state) & (TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) { @@ -661,7 +661,7 @@ void sdp_post_sends(struct sdp_sock *ssk, int nonagle) if (unlikely(ssk->sdp_disconnect) && !ssk->isk.sk.sk_send_head && - ssk->bufs > (ssk->remote_credits >= ssk->rx_head - ssk->rx_tail)) { + ssk->tx_credits > (ssk->remote_credits >= ssk->rx_head - ssk->rx_tail)) { ssk->sdp_disconnect = 0; skb = sdp_stream_alloc_skb(&ssk->isk.sk, sizeof(struct sdp_bsdh), @@ -781,8 +781,8 @@ static int sdp_handle_recv_comp(struct sdp_sock *ssk, struct ib_wc *wc) printk(KERN_WARNING "SDP BUG! mseq %d != wrid %d\n", ssk->mseq_ack, (int)wc->wr_id); - SDPSTATS_HIST_LINEAR(credits_before_update, ssk->bufs); - ssk->bufs = ntohl(h->mseq_ack) - ssk->tx_head + 1 + + SDPSTATS_HIST_LINEAR(credits_before_update, ssk->tx_credits); + ssk->tx_credits = ntohl(h->mseq_ack) - ssk->tx_head + 1 + ntohs(h->bufs); frags = skb_shinfo(skb)->nr_frags; @@ -848,7 +848,7 @@ static int sdp_handle_recv_comp(struct sdp_sock *ssk, struct ib_wc *wc) static int sdp_handle_send_comp(struct sdp_sock *ssk, struct ib_wc *wc) { - struct sk_buff *skb; + struct sk_buff *skb = NULL; struct sdp_bsdh *h; skb = sdp_send_completion(ssk, wc->wr_id); diff --git a/drivers/infiniband/ulp/sdp/sdp_cma.c b/drivers/infiniband/ulp/sdp/sdp_cma.c index 3bc2b02e3f54..429f47b9fe40 100644 --- a/drivers/infiniband/ulp/sdp/sdp_cma.c +++ b/drivers/infiniband/ulp/sdp/sdp_cma.c @@ -206,18 +206,19 @@ static int sdp_connect_handler(struct sock *sk, struct rdma_cm_id *id, sdp_add_sock(sdp_sk(child)); - sdp_sk(child)->max_bufs = sdp_sk(child)->bufs = ntohs(h->bsdh.bufs); - sdp_sk(child)->min_bufs = sdp_sk(child)->bufs / 4; + sdp_sk(child)->max_bufs = sdp_sk(child)->tx_credits = ntohs(h->bsdh.bufs); + sdp_sk(child)->min_bufs = sdp_sk(child)->tx_credits / 4; sdp_sk(child)->xmit_size_goal = ntohl(h->localrcvsz) - sizeof(struct sdp_bsdh); sdp_sk(child)->send_frags = PAGE_ALIGN(sdp_sk(child)->xmit_size_goal) / PAGE_SIZE; sdp_init_buffers(sdp_sk(child), rcvbuf_initial_size); - sdp_dbg(child, "%s recv_frags: %d bufs %d xmit_size_goal %d send trigger %d\n", + + sdp_dbg(child, "%s recv_frags: %d tx credits %d xmit_size_goal %d send trigger %d\n", __func__, sdp_sk(child)->recv_frags, - sdp_sk(child)->bufs, + sdp_sk(child)->tx_credits, sdp_sk(child)->xmit_size_goal, sdp_sk(child)->min_bufs); @@ -253,8 +254,8 @@ static int sdp_response_handler(struct sock *sk, struct rdma_cm_id *id, h = event->param.conn.private_data; SDP_DUMP_PACKET(sk, "RX", NULL, &h->bsdh); - sdp_sk(sk)->max_bufs = sdp_sk(sk)->bufs = ntohs(h->bsdh.bufs); - sdp_sk(sk)->min_bufs = sdp_sk(sk)->bufs / 4; + sdp_sk(sk)->max_bufs = sdp_sk(sk)->tx_credits = ntohs(h->bsdh.bufs); + sdp_sk(sk)->min_bufs = sdp_sk(sk)->tx_credits / 4; sdp_sk(sk)->xmit_size_goal = ntohl(h->actrcvsz) - sizeof(struct sdp_bsdh); sdp_sk(sk)->send_frags = MIN(PAGE_ALIGN(sdp_sk(sk)->xmit_size_goal) / @@ -264,7 +265,7 @@ static int sdp_response_handler(struct sock *sk, struct rdma_cm_id *id, sdp_dbg(sk, "%s bufs %d xmit_size_goal %d send_frags: %d send trigger %d\n", __func__, - sdp_sk(sk)->bufs, + sdp_sk(sk)->tx_credits, sdp_sk(sk)->xmit_size_goal, sdp_sk(sk)->send_frags, sdp_sk(sk)->min_bufs); diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index c9b5ba2b6907..e7f65f92e399 100644 --- a/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/drivers/infiniband/ulp/sdp/sdp_main.c @@ -1551,12 +1551,11 @@ static inline int slots_free(struct sdp_sock *ssk) { int min_free; - min_free = SDP_TX_SIZE - (ssk->tx_head - ssk->tx_tail); - if (ssk->bufs < min_free) - min_free = ssk->bufs; - min_free -= (min_free < SDP_MIN_BUFS) ? min_free : SDP_MIN_BUFS; + min_free = MIN(ssk->tx_credits, SDP_TX_SIZE - (ssk->tx_head - ssk->tx_tail)); + if (min_free < SDP_MIN_TX_CREDITS) + return 0; - return min_free; + return min_free - SDP_MIN_TX_CREDITS; }; /* like sk_stream_memory_free - except measures remote credits */ @@ -1633,7 +1632,7 @@ void sdp_bzcopy_write_space(struct sdp_sock *ssk) struct sock *sk = &ssk->isk.sk; struct socket *sock = sk->sk_socket; - if (ssk->bufs >= ssk->min_bufs && + if (ssk->tx_credits >= ssk->min_bufs && ssk->tx_head == ssk->tx_tail && sock != NULL) { clear_bit(SOCK_NOSPACE, &sock->flags); @@ -1714,8 +1713,7 @@ static int sdp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, if (!sk->sk_send_head || (copy = size_goal - skb->len) <= 0 || - bz != *(struct bzcopy_state **)skb->cb) { - + bz != BZCOPY_STATE(skb)) { new_segment: /* * Allocate a new segment @@ -1737,7 +1735,7 @@ new_segment: if (!skb) goto wait_for_memory; - *((struct bzcopy_state **)skb->cb) = bz; + BZCOPY_STATE(skb) = bz; /* * Check whether we can use HW checksum. -- 2.50.1