Skip to contentSkip to conversation

net: Introduce recvmmsg socket syscall

RFC PATCH In review Arnaldo Carvalho de Melo 1 participant 1 message Sep 16, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v4 cover 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