All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v6 00/10] optimize openvswitch flow looking up
@ 2019-11-01 14:23 xiangxia.m.yue
  2019-11-01 14:23 ` [PATCH net-next v6 01/10] net: openvswitch: add flow-mask cache for performance xiangxia.m.yue
                   ` (10 more replies)
  0 siblings, 11 replies; 28+ messages in thread
From: xiangxia.m.yue @ 2019-11-01 14:23 UTC (permalink / raw)
  To: gvrose8192, pshelar, davem; +Cc: netdev, dev, Tonghao Zhang

From: Tonghao Zhang <xiangxia.m.yue@gmail.com>

This series patch optimize openvswitch for performance or simplify
codes.

Patch 1, 2, 4: Port Pravin B Shelar patches to
linux upstream with little changes.

Patch 5, 6, 7: Optimize the flow looking up and
simplify the flow hash.

Patch 8, 9: are bugfix.

The performance test is on Intel Xeon E5-2630 v4.
The test topology is show as below:

+-----------------------------------+
|   +---------------------------+   |
|   | eth0   ovs-switch    eth1 |   | Host0
|   +---------------------------+   |
+-----------------------------------+
      ^                       |
      |                       |
      |                       |
      |                       |
      |                       v
+-----+----+             +----+-----+
| netperf  | Host1       | netserver| Host2
+----------+             +----------+

We use netperf send the 64B packets, and insert 255+ flow-mask:
$ ovs-dpctl add-flow ovs-switch "in_port(1),eth(dst=00:01:00:00:00:00/ff:ff:ff:ff:ff:01),eth_type(0x0800),ipv4(frag=no)" 2
...
$ ovs-dpctl add-flow ovs-switch "in_port(1),eth(dst=00:ff:00:00:00:00/ff:ff:ff:ff:ff:ff),eth_type(0x0800),ipv4(frag=no)" 2
$
$ netperf -t UDP_STREAM -H 2.2.2.200 -l 40 -- -m 18

* Without series patch, throughput 8.28Mbps
* With series patch, throughput 46.05Mbps

v6:
some coding style fixes

v5:
rewrite patch 8, release flow-mask when freeing flow

v4:
access ma->count with READ_ONCE/WRITE_ONCE API. More information,
see patch 5 comments. 

v3:
update ma point when realloc mask_array in patch 5

v2:
simplify codes. e.g. use kfree_rcu instead of call_rcu

Tonghao Zhang (10):
  net: openvswitch: add flow-mask cache for performance
  net: openvswitch: convert mask list in mask array
  net: openvswitch: shrink the mask array if necessary
  net: openvswitch: optimize flow mask cache hash collision
  net: openvswitch: optimize flow-mask looking up
  net: openvswitch: simplify the flow_hash
  net: openvswitch: add likely in flow_lookup
  net: openvswitch: fix possible memleak on destroy flow-table
  net: openvswitch: don't unlock mutex when changing the user_features
    fails
  net: openvswitch: simplify the ovs_dp_cmd_new

 net/openvswitch/datapath.c   |  65 +++++---
 net/openvswitch/flow.h       |   1 -
 net/openvswitch/flow_table.c | 381 ++++++++++++++++++++++++++++++++++---------
 net/openvswitch/flow_table.h |  19 ++-
 4 files changed, 361 insertions(+), 105 deletions(-)

-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2019-11-04 22:21 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-01 14:23 [PATCH net-next v6 00/10] optimize openvswitch flow looking up xiangxia.m.yue
2019-11-01 14:23 ` [PATCH net-next v6 01/10] net: openvswitch: add flow-mask cache for performance xiangxia.m.yue
2019-11-01 23:39   ` [ovs-dev] " William Tu
2019-11-02  8:37     ` Tonghao Zhang
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 02/10] net: openvswitch: convert mask list in mask array xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 03/10] net: openvswitch: shrink the mask array if necessary xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 04/10] net: openvswitch: optimize flow mask cache hash collision xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 05/10] net: openvswitch: optimize flow-mask looking up xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-04 13:59     ` [ovs-dev] " William Tu
2019-11-04 19:22       ` David Miller
2019-11-04 22:10       ` Pravin Shelar
2019-11-04 22:20         ` William Tu
2019-11-01 14:23 ` [PATCH net-next v6 06/10] net: openvswitch: simplify the flow_hash xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 07/10] net: openvswitch: add likely in flow_lookup xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 08/10] net: openvswitch: fix possible memleak on destroy flow-table xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 09/10] net: openvswitch: don't unlock mutex when changing the user_features fails xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 10/10] net: openvswitch: simplify the ovs_dp_cmd_new xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-04  1:22 ` [PATCH net-next v6 00/10] optimize openvswitch flow looking up David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.