linux/net/openvswitch
Thomas Graf bda56f143c openvswitch: Use skb_zerocopy() for upcall
Use of skb_zerocopy() can avoid the expensive call to memcpy()
when copying the packet data into the Netlink skb. Completes
checksum through skb_checksum_help() if not already done in
GSO segmentation.

Zerocopy is only performed if user space supported unaligned
Netlink messages. memory mapped netlink i/o is preferred over
zerocopy if it is set up.

Cost of upcall is significantly reduced from:
+   7.48%       vhost-8471  [k] memcpy
+   5.57%     ovs-vswitchd  [k] memcpy
+   2.81%       vhost-8471  [k] csum_partial_copy_generic

to:
+   5.72%     ovs-vswitchd  [k] memcpy
+   3.32%       vhost-5153  [k] memcpy
+   0.68%       vhost-5153  [k] skb_zerocopy

(megaflows disabled)

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
2014-01-06 15:53:17 -08:00
..
Kconfig openvswitch: Add SCTP support 2013-08-26 14:03:13 -07:00
Makefile openvswitch: Restructure datapath.c and flow.c 2013-10-03 18:16:47 -07:00
actions.c openvswitch: Add SCTP support 2013-08-26 14:03:13 -07:00
datapath.c openvswitch: Use skb_zerocopy() for upcall 2014-01-06 15:53:17 -08:00
datapath.h openvswitch: Allow user space to announce ability to accept unaligned Netlink messages 2014-01-06 15:52:53 -08:00
dp_notify.c genetlink: make multicast groups const, prevent abuse 2013-11-19 16:39:06 -05:00
flow.c openvswitch: Per cpu flow stats. 2014-01-06 15:52:24 -08:00
flow.h openvswitch: Per cpu flow stats. 2014-01-06 15:52:24 -08:00
flow_netlink.c net: ovs: use kfree_rcu instead of rcu_free_{sw_flow_mask_cb,acts_callback} 2014-01-06 15:52:30 -08:00
flow_netlink.h openvswitch: Per cpu flow stats. 2014-01-06 15:52:24 -08:00
flow_table.c openvswitch: remove duplicated include from flow_table.c 2014-01-06 15:52:35 -08:00
flow_table.h openvswitch: Per cpu flow stats. 2014-01-06 15:52:24 -08:00
vport-gre.c openvswitch: remove duplicated include from vport-gre.c 2013-09-23 13:36:31 -07:00
vport-internal_dev.c openvswitch: Enable all GSO features on internal port. 2013-11-01 18:17:50 -07:00
vport-internal_dev.h openvswitch: Replace Nicira Networks. 2012-05-03 18:55:23 -07:00
vport-netdev.c openvswitch: fix vport-netdev unregister 2013-10-16 14:50:22 -07:00
vport-netdev.h openvswitch: fix vport-netdev unregister 2013-10-16 14:50:22 -07:00
vport-vxlan.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch 2013-11-04 16:25:04 -05:00
vport.c net: Explicitly initialize u64_stats_sync structures for lockdep 2013-11-06 12:40:25 +01:00
vport.h openvswitch: Add vxlan tunneling support. 2013-08-20 00:15:44 -07:00