[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20200216.192525.1097551100928922122.davem@davemloft.net>
Date: Sun, 16 Feb 2020 19:25:25 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: arjunroy.kdev@...il.com
Cc: netdev@...r.kernel.org, arjunroy@...gle.com, soheil@...gle.com,
edumazet@...gle.com
Subject: Re: [PATCH net-next 2/2] tcp-zerocopy: Return sk_err (if set)
along with tcp receive zerocopy.
From: Arjun Roy <arjunroy.kdev@...il.com>
Date: Fri, 14 Feb 2020 15:30:50 -0800
> From: Arjun Roy <arjunroy@...gle.com>
>
> This patchset is intended to reduce the number of extra system calls
> imposed by TCP receive zerocopy. For ping-pong RPC style workloads,
> this patchset has demonstrated a system call reduction of about 30%
> when coupled with userspace changes.
>
> For applications using epoll, returning sk_err along with the result
> of tcp receive zerocopy could remove the need to call
> recvmsg()=-EAGAIN after a spurious wakeup.
>
> Consider a multi-threaded application using epoll. A thread may awaken
> with EPOLLIN but another thread may already be reading. The
> spuriously-awoken thread does not necessarily know that another thread
> 'won'; rather, it may be possible that it was woken up due to the
> presence of an error if there is no data. A zerocopy read receiving 0
> bytes thus would need to be followed up by recvmsg to be sure.
>
> Instead, we return sk_err directly with zerocopy, so the application
> can avoid this extra system call.
>
> Signed-off-by: Arjun Roy <arjunroy@...gle.com>
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> Signed-off-by: Soheil Hassas Yeganeh <soheil@...gle.com>
Applied.
Powered by blists - more mailing lists