[ovs-dev] [PATCH v2] netdev-linux: Replace sendmsg with sendmmsg in netdev_linux_send
Ben Pfaff
blp at ovn.org
Wed Jul 12 16:25:11 UTC 2017
On Fri, Jul 07, 2017 at 12:39:51AM +0000, Zhenyu Gao wrote:
> Sendmmsg can reduce cpu cycles in sending packets to kernel.
> Replace sendmsg with sendmmsg in function netdev_linux_send to send
> batch packets if sendmmsg is available.
>
> If kernel side doesn't support sendmmsg, will fallback to sendmsg.
>
> netserver
> |------------|
> | |
> | container |
> |----veth----|
> |
> | |------------|
> |---veth-| dpdk-ovs | netperf
> | | |--------------|
> |----dpdk----| | bare-metal |
> | |--------------|
> | |
> | |
> pnic-----------pnic
>
> Netperf was consumed to test the performance:
>
> 1)cmd:netperf -H remote-container -t UDP_STREAM -l 60 -- -m 1400
> result: netserver received 2383.21Mb(sendmsg)/2551.64Mb(sendmmsg)
>
> 2)cmd:netperf -H remote-container -t UDP_STREAM -l 60 -- -m 60
> result: netserver received 109.72Mb(sendmsg)/115.18Mb(sendmmsg)
>
> Sendmmsg show about 6% improvement in netperf UDP testing.
>
> Signed-off-by: Zhenyu Gao <sysugaozhenyu at gmail.com>
After looking at this, I think that it might be best to simply include a
general-purpose sendmmsg implementation in the tree. I sent out a
patch (although I haven't tested it):
https://patchwork.ozlabs.org/patch/787344/
What do you think about implementing your change on top of this?
More information about the dev
mailing list