[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: Benjamin LaHaise <benjamin.c.lahaise@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
231d06ae82
Коммит
e9df7d7f58
|
@ -1427,15 +1427,15 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
|
||||||
while(sent < len)
|
while(sent < len)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Optimisation for the fact that under 0.01% of X messages typically
|
* Optimisation for the fact that under 0.01% of X
|
||||||
* need breaking up.
|
* messages typically need breaking up.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
size=len-sent;
|
size = len-sent;
|
||||||
|
|
||||||
/* Keep two messages in the pipe so it schedules better */
|
/* Keep two messages in the pipe so it schedules better */
|
||||||
if (size > sk->sk_sndbuf / 2 - 64)
|
if (size > ((sk->sk_sndbuf >> 1) - 64))
|
||||||
size = sk->sk_sndbuf / 2 - 64;
|
size = (sk->sk_sndbuf >> 1) - 64;
|
||||||
|
|
||||||
if (size > SKB_MAX_ALLOC)
|
if (size > SKB_MAX_ALLOC)
|
||||||
size = SKB_MAX_ALLOC;
|
size = SKB_MAX_ALLOC;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче