Web lists-archives.com

Re: [net-next PATCH 0/5] Add busy poll support for epoll under certain circumstances




[CC += linux-api@xxxxxxxxxxxxxxx]

Hello Alexander

Since this is a kernel-user-space API change, please CC linux-api@
(and on future iterations of the patch). The kernel source file
Documentation/SubmitChecklist notes that all Linux kernel patches that
change userspace interfaces should be CCed to
linux-api@xxxxxxxxxxxxxxx, so that the various parties who are
interested in API changes are informed. For further information, see
https://www.kernel.org/doc/man-pages/linux-api-ml.html

Thanks,

Michael



On Thu, Mar 16, 2017 at 7:32 PM, Alexander Duyck
<alexander.duyck@xxxxxxxxx> wrote:
> This patch series is meant to add busy polling support to epoll when all of
> the sockets on a given epoll are either local or are being sourced by the
> same NAPI ID.
>
> In order to support this the first two patches clean up a few issues we
> found with the NAPI ID tracking and infrastructure.
>
> In the third patch we introduce SO_INCOMING_NAPI_ID so that applications
> have a means of trying to sort their incoming sockets to identify which
> requests should be routed where in order to keep the epoll listener aligned
> to a given Rx queue without having to rely on IRQ pinning.
>
> Finally the last two patches refactor the existing busy poll infrastructure
> to make it so that we can call it without necessarily needing a socket, and
> enable the bits needed to support epoll when all of the sockets on the
> epoll either share the same NAPI ID, or simply are reporting no NAPI ID.
>
> ---
>
> Sridhar Samudrala (5):
>       net: Do not record sender_cpu as napi_id in socket receive paths
>       net: Call sk_mark_napi_id() in the ACK receive path
>       net: Introduce SO_INCOMING_NAPI_ID
>       net: Commonize busy polling code to focus on napi_id instead of socket
>       epoll: Add busy poll support to epoll with socket fds.
>
>
>  arch/alpha/include/uapi/asm/socket.h   |    2 +
>  arch/avr32/include/uapi/asm/socket.h   |    2 +
>  arch/frv/include/uapi/asm/socket.h     |    2 +
>  arch/ia64/include/uapi/asm/socket.h    |    2 +
>  arch/m32r/include/uapi/asm/socket.h    |    2 +
>  arch/mips/include/uapi/asm/socket.h    |    2 +
>  arch/mn10300/include/uapi/asm/socket.h |    2 +
>  arch/parisc/include/uapi/asm/socket.h  |    2 +
>  arch/powerpc/include/uapi/asm/socket.h |    2 +
>  arch/s390/include/uapi/asm/socket.h    |    2 +
>  arch/sparc/include/uapi/asm/socket.h   |    2 +
>  arch/xtensa/include/uapi/asm/socket.h  |    2 +
>  fs/eventpoll.c                         |  115 ++++++++++++++++++++++++++++++++
>  include/net/busy_poll.h                |   14 +++-
>  include/uapi/asm-generic/socket.h      |    2 +
>  net/core/dev.c                         |   16 ++--
>  net/core/sock.c                        |   22 ++++++
>  net/ipv4/tcp_ipv4.c                    |    1
>  18 files changed, 183 insertions(+), 11 deletions(-)
>
> --



-- 
Michael Kerrisk Linux man-pages maintainer;
http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface", http://blog.man7.org/