[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <551D4CE0.8090706@cogentembedded.com>
Date: Thu, 02 Apr 2015 17:06:24 +0300
From: Sergei Shtylyov <sergei.shtylyov@...entembedded.com>
To: Sowmini Varadhan <sowmini.varadhan@...cle.com>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
CC: chien.yen@...cle.com, davem@...emloft.net,
rds-devel@....oracle.com, agrover@...hat.com, clm@...com,
zab@...bo.net, ajaykumar.hotchandani@...cle.com
Subject: Re: [PATCH 6/6] RDS: don't trust the LL_SEND_FULL bit
Hello.
On 4/2/2015 4:50 PM, Sowmini Varadhan wrote:
> We are seeing connections stuck with the LL_SEND_FULL bit getting
> set and never cleared. This changes RDS to stop trusting the
> LL_SEND_FULL bit and kick krdsd after any time we
> see -ENOMEM from the ring allocation code.
> Original patch by Chris Mason
> Signed-off-by: Sowmini Varadhan <sowmini.varadhan@...cle.com>
> Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@...cle.com>
> ---
> net/rds/send.c | 11 +++++++----
> net/rds/threads.c | 2 ++
> 2 files changed, 9 insertions(+), 4 deletions(-)
> diff --git a/net/rds/send.c b/net/rds/send.c
> index 23135a8..9d9c90c 100644
> --- a/net/rds/send.c
> +++ b/net/rds/send.c
> @@ -1108,8 +1108,10 @@ int rds_sendmsg(struct socket *sock, struct msghdr *msg, size_t payload_len)
> */
> rds_stats_inc(s_send_queued);
>
> - if (!test_bit(RDS_LL_SEND_FULL, &conn->c_flags))
> - rds_send_xmit(conn);
> + ret = rds_send_xmit(conn);
> + if (ret == -ENOMEM || ret == -EAGAIN)
> + queue_delayed_work(rds_wq, &conn->c_send_w, 1);
> +
No need for extra new line here.
>
> rds_message_put(rm);
> return payload_len;
[...]
WBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists