mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
net: openvswitch: reorder masks array based on usage
This patch reorders the masks array every 4 seconds based on their usage count. This greatly reduces the masks per packet hit, and hence the overall performance. Especially in the OVS/OVN case for OpenShift. Here are some results from the OVS/OVN OpenShift test, which use 8 pods, each pod having 512 uperf connections, each connection sends a 64-byte request and gets a 1024-byte response (TCP). All uperf clients are on 1 worker node while all uperf servers are on the other worker node. Kernel without this patch : 7.71 Gbps Kernel with this patch applied: 14.52 Gbps We also run some tests to verify the rebalance activity does not lower the flow insertion rate, which does not. Signed-off-by: Eelco Chaudron <echaudro@redhat.com> Tested-by: Andrew Theurer <atheurer@redhat.com> Reviewed-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b18432c5a4
commit
eac87c413b
4 changed files with 207 additions and 7 deletions
|
@ -20,8 +20,9 @@
|
|||
#include "meter.h"
|
||||
#include "vport-internal_dev.h"
|
||||
|
||||
#define DP_MAX_PORTS USHRT_MAX
|
||||
#define DP_VPORT_HASH_BUCKETS 1024
|
||||
#define DP_MAX_PORTS USHRT_MAX
|
||||
#define DP_VPORT_HASH_BUCKETS 1024
|
||||
#define DP_MASKS_REBALANCE_INTERVAL 4000
|
||||
|
||||
/**
|
||||
* struct dp_stats_percpu - per-cpu packet processing statistics for a given
|
||||
|
@ -83,6 +84,9 @@ struct datapath {
|
|||
|
||||
/* Switch meters. */
|
||||
struct dp_meter_table meter_tbl;
|
||||
|
||||
/* re-balance flow masks timer */
|
||||
struct delayed_work masks_rebalance;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue