net: Introduce recvmmsg socket syscall
Subsystems (2)
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