diff options
author | Benjamin LaHaise <benjamin.c.lahaise@intel.com> | 2006-03-20 21:29:05 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-03-20 21:29:05 -0800 |
commit | e9df7d7f584666533b1bdfcf5c60a43d64689198 (patch) | |
tree | 78faaa085edfb24784e40779864d41fd9ddeb168 /net/unix | |
parent | 231d06ae826664b83369166449144304859a62fa (diff) | |
download | lwn-e9df7d7f584666533b1bdfcf5c60a43d64689198.tar.gz lwn-e9df7d7f584666533b1bdfcf5c60a43d64689198.zip |
[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>
Diffstat (limited to 'net/unix')
-rw-r--r-- | net/unix/af_unix.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index c323cc6a28b0..2b00460f2886 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -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; |