提交 e9df7d7f 编写于 作者: B Benjamin LaHaise 提交者: David S. Miller

[AF_UNIX]: use shift instead of integer division

The patch below replaces a divide by 2 with a shift -- sk_sndbuf is an
integer, so gcc emits an idiv, which takes 10x longer than a shift by 1.
This improves af_unix bandwidth by ~6-10K/s.  Also, tidy up the comment
to fit in 80 columns while we're at it.
Signed-off-by: NBenjamin LaHaise <benjamin.c.lahaise@intel.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 231d06ae
......@@ -1427,15 +1427,15 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
while(sent < len)
{
/*
* Optimisation for the fact that under 0.01% of X messages typically
* need breaking up.
* Optimisation for the fact that under 0.01% of X
* messages typically need breaking up.
*/
size=len-sent;
size = len-sent;
/* Keep two messages in the pipe so it schedules better */
if (size > sk->sk_sndbuf / 2 - 64)
size = sk->sk_sndbuf / 2 - 64;
if (size > ((sk->sk_sndbuf >> 1) - 64))
size = (sk->sk_sndbuf >> 1) - 64;
if (size > SKB_MAX_ALLOC)
size = SKB_MAX_ALLOC;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册