net: unix: Align send data_len up to PAGE_SIZE
Subsystems (3)
PATCH v3 1/1 net: unix: Align send data_len up to PAGE_SIZE
Using whole of allocated pages reduces requested skb->data size. This is just a little more thriftily allocation.
netperf does not show difference with the current performance.
Signed-off-by Kirill Tkhai <[email protected]>
--- net/unix/af_unix.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
net/unix/af_unix.c +7 -1
@@ -1492,10 +1492,14 @@ static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock,if (len > sk->sk_sndbuf -32 ) goto out; -if (len >SKB_MAX_ALLOC ) +if (len >SKB_MAX_ALLOC ) { data_len =min_t (size_t, len -SKB_MAX_ALLOC ,MAX_SKB_FRAGS *PAGE_SIZE ); + data_len =PAGE_ALIGN (data_len); + +BUILD_BUG_ON (SKB_MAX_ALLOC <PAGE_SIZE ); + } skb = sock_alloc_send_pskb(sk, len - data_len, data_len, msg->msg_flags & MSG_DONTWAIT, &err,
@@ -1670,6 +1674,8 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock, data_len =max_t (int,0 , size -SKB_MAX_HEAD (0 )); + data_len =min_t (size_t, size,PAGE_ALIGN (data_len)); + skb =sock_alloc_send_pskb (sk, size - data_len, data_len, msg->msg_flags &MSG_DONTWAIT , &err,get_order (UNIX_SKB_FRAGS_SZ ));
Quoted 9 lines · Kirill Tkhai
Using whole of allocated pages reduces requested
skb->datasize. This is just a little more thriftily allocation.netperf does not show difference with the current performance.
Signed-off-by Kirill Tkhai <[email protected]>--- net/unix/af_unix.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
Acked-by Eric Dumazet <[email protected]>
From: Kirill Tkhai <[email protected]>
Date: Thu, 15 May 2014 19:56:28 +0400
Quoted 6 lines
Using whole of allocated pages reduces requested
skb->datasize. This is just a little more thriftily allocation.netperf does not show difference with the current performance.
Signed-off-by Kirill Tkhai <[email protected]>
Applied, thank you.