Re: [PATCH 1/2 net-next] af_unix: improve STREAM behavior with fragmented memory

David Miller
2013-08-10T08:17:00Z

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu, 08 Aug 2013 14:37:32 -0700

> From: Eric Dumazet <edumazet@google.com>
>
> unix_stream_sendmsg() currently uses order-2 allocations,
> and we had numerous reports this can fail.
>
> The __GFP_REPEAT flag present in sock_alloc_send_pskb() is
> not helping.
>
> This patch extends the work done in commit eb6a24816b247c
> ("af_unix: reduce high order page allocations) for
> datagram sockets.
>
> This opens the possibility of zero copy IO (splice() and
> friends)
>
> The trick is to not use skb_pull() anymore in recvmsg() path,
> and instead add a @consumed field in UNIXCB() to track amount
> of already read payload in the skb.
>
> There is a performance regression for large sends
> because of extra page allocations that will be addressed
> in a follow-up patch, allowing sock_alloc_send_pskb()
> to attempt high order page allocations.
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>

Applied.