Skip to content

RFC net: Introduce recvmmsg socket syscall

Arnaldo Carvalho de Melo netdev 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 RFC Latest2 patches 7 repliesIn review
  2. v3 RFC1 patch 0 repliesSuperseded
  3. v2 RFC1 patch 8 repliesSuperseded

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2net: Introduce recvmmsg socket syscallarch/alpha/kernel/systbls.S arch/arm/kernel/calls.S arch/avr32/kernel/syscall_table.S +21 more+259 -482 replies
2/2net: Allow protocols to provide an unlocked_recvmsg socket methoddrivers/isdn/mISDN/socket.c drivers/net/pppoe.c drivers/net/pppol2tp.c +43 more+244 -215 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v4 yet.

Read the v4 thread

Cover letter [RFCv4 PATCH 0/2] net: Introduce recvmmsg socket syscall

Hi,

Nir, can you please test with this patchset and check if latency
numbers improved? They should, I think :-)

New perf callgraphs here:

http://oops.ghostprotocols.net:81/acme/perf.recvmsg.step2.cg.data.txt.bz2

versus

http://oops.ghostprotocols.net:81/acme/perf.recvmmsg.step2.cg.data.txt.bz2

Look at what appears now on the radar, its not locking :-)

Or course, I need to do more tests, but it looks promising, please give
it a go and report back here if you can!

- Arnaldo

# Samples: 761074
#
# Overhead Command Shared Object Symbol

# ........  ........  ........................  ......
#
     6.54%  recvmmsg  [kernel]                  [k] skb_set_owner_r
                |
                |--99.43%-- sock_queue_rcv_skb
                |          __udp_queue_rcv_skb
                |          sk_backlog_rcv
                |          release_sock
                |          __sys_recvmmsg
                |          sys_recvmmsg
                |          system_call_fastpath
                |          syscall
                |          |
                |           --12.76%-- main
                |                     __libc_start_main
                |
                 --0.57%-- __udp_queue_rcv_skb
                           sk_backlog_rcv
                           release_sock
                           __sys_recvmmsg
                           sys_recvmmsg
                           system_call_fastpath
                           syscall
                           |
                            --10.84%-- main
                                      __libc_start_main

5.88% recvmmsg [kernel] [k] _spin_lock_irqsave
|
|--47.58%-- skb_queue_tail
| sock_queue_rcv_skb
| __udp_queue_rcv_skb
| sk_backlog_rcv
| release_sock
| __sys_recvmmsg
| sys_recvmmsg
| system_call_fastpath
| syscall
| |
| --12.56%-- main
| __libc_start_main
|
|--41.85%-- __skb_recv_datagram
| __udp_recvmsg
| udp_unlocked_recvmsg
| sock_common_unlocked_recvmsg
| __sock_unlocked_recvmsg_nosec
| |
| |--98.41%-- sock_unlocked_recvmsg_nosec
| | __sys_recvmsg
| | __sys_recvmmsg
| | sys_recvmmsg
| | system_call_fastpath
| | syscall
| | |
| | --12.82%-- main
| | __libc_start_main
| |
| --1.59%-- sock_unlocked_recvmsg
| __sys_recvmsg
| __sys_recvmmsg
| sys_recvmmsg

- Arnaldo