[ovs-dev] [PATCH v2] doc: Remove experimental tag for SMC cache.

2019-07-17 Thread Yipeng Wang
SMC cache was introduced in 2.10 with experimental tag. SMC cache is a layer of software cache located after EMC cache. The purpose is to improve the performance of use cases that many flows missing the EMC cache. One can enable SMC cache using smc-enable=true option. Signed-off-by: Yipeng Wang

[ovs-dev] [PATCH v1] doc: Remove experimental tag for SMC cache.

2019-06-27 Thread Yipeng Wang
SMC cache was introduced in 2.10 with experimental tag. SMC cache is a layer of software cache located after EMC cache. The purpose is to improve the performance of use cases that many flows missing the EMC cache. One can enable SMC cache using smc-enable=true option. Signed-off-by: Yipeng Wang

[ovs-dev] [PATCH v5 2/2] tests: Fix unit test case caused by SMC cache.

2018-07-10 Thread Yipeng Wang
Test 1024 PMD - stats reported different stats data during tests because of the SMC data. This commit fix the test. Signed-off-by: Yipeng Wang --- tests/pmd.at | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/pmd.at b/tests/pmd.at index 60452f5..4cae6c8 100644

[ovs-dev] [PATCH v5 1/2] dpif-netdev: Add SMC cache after EMC cache

2018-07-10 Thread Yipeng Wang
off by default. One can turn it on using ovsdb options. Signed-off-by: Yipeng Wang Co-authored-by: Jan Scheurich Signed-off-by: Jan Scheurich --- Documentation/topics/dpdk/bridge.rst | 15 ++ NEWS | 2 + lib/cmap.c | 74 lib

[ovs-dev] [PATCH v5 0/2] dpif-netdev: Combine CD/DFC patch for datapath refactor

2018-07-10 Thread Yipeng Wang
cache the index of flow_table entry. 3. Incorporate commit 2 into commit 1. (Bhanu's comment) 4. Change DFC to be always on in commit 1. (Bhanu's comment) RFC of this patch set: https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343411.html Yipeng Wang (2): dpif-netdev: Add SMC cache

[ovs-dev] [PATCH v4 1/2] dpif-netdev: Add SMC cache after EMC cache

2018-06-29 Thread Yipeng Wang
by default. One can turn it on using ovsdb options. Signed-off-by: Yipeng Wang --- Documentation/topics/dpdk/bridge.rst | 15 ++ NEWS | 2 + lib/cmap.c | 73 + lib/cmap.h | 5 + lib/dpif-netdev

[ovs-dev] [PATCH v4 2/2] tests: Fix unit test case caused by SMC cache.

2018-06-29 Thread Yipeng Wang
Test 1024 PMD - stats reported different stats data during tests because of the SMC data. This commit fix the test. Signed-off-by: Yipeng Wang --- tests/pmd.at | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/pmd.at b/tests/pmd.at index 60452f5..4cae6c8 100644

[ovs-dev] [PATCH v4 0/2] dpif-netdev: Combine CD/DFC patch for datapath refactor

2018-06-29 Thread Yipeng Wang
he the index of flow_table entry. 3. Incorporate commit 2 into commit 1. (Bhanu's comment) 4. Change DFC to be always on in commit 1. (Bhanu's comment) RFC of this patch set: https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343411.html Yipeng Wang (2): dpif-netdev: Add SMC cache after EMC cache

[ovs-dev] [PATCH v3 4/6] dpif-netdev: Split DFC cache and code optimization

2018-05-15 Thread Yipeng Wang
is hidden and performance improved significantly. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-netdev-perf.h | 2 +- lib/dpif-netdev.c | 275 - 2 files changed, 161 insertions(+), 116 deletions(-) diff --git a/li

[ovs-dev] [PATCH v3 5/6] dpif-netdev: Adaptive turn on/off SMC

2018-05-15 Thread Yipeng Wang
-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-netdev.c | 25 +++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 48e9d9f..27d1792 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -155,6

[ovs-dev] [PATCH v3 1/6] dpif-netdev: Refactor datapath flow cache

2018-05-15 Thread Yipeng Wang
length is not initilized when insertion. Initialize the key length before insertion. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-netdev-perf.h | 1 + lib/dpif-netdev.c | 371 - 2 files changed, 247 insertions(+), 125 deletions(-)

[ovs-dev] [PATCH v3 3/6] dpif-netdev: use flow_table as indirect table

2018-05-15 Thread Yipeng Wang
error. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/cmap.c| 73 ++ lib/cmap.h| 5 +++ lib/dpif-netdev.c | 131 +- 3 files changed, 128 insertions(+), 81 deletions(-) diff --git

[ovs-dev] [PATCH v3 2/6] dpif-netdev: Use way-associative cache

2018-05-15 Thread Yipeng Wang
This commit use a way-associative cache rather than a simple single entry hash for DFC. Experiments show that this design generally has much higher hit rate. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-netdev.c | 107 +++

[ovs-dev] [PATCH v3 0/6] dpif-netdev: Combine CD and DFC patch for datapath refactor

2018-05-15 Thread Yipeng Wang
be always on in commit 1. (Bhanu's comment) RFC of this patch set: https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343411.html Yipeng Wang (5): dpif-netdev: Use way-associative cache dpif-netdev: use flow_table as indirect table dpif-netdev: Split DFC cache and code optimization dp

[ovs-dev] [PATCH v3 6/6] tests: Fix unit test case caused by SMC cache.

2018-05-15 Thread Yipeng Wang
Test 1024 PMD - stats reported different stats data during tests because of the SMC data. This commit fix the test. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- tests/pmd.at | 10 +++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/pmd.at b/tests/

[ovs-dev] [PATCH v2 0/4] dpif-netdev: Combine CD and DFC patch for datapath refactor

2018-04-02 Thread yipeng wang
343411.html Yipeng Wang (3): dpif-netdev: Use way-associative cache dpif-netdev: use flow_table as indirect table dpif-netdev: Split DFC cache and code optimization Jan Scheurich (1): dpif-netdev: Refactor datapath flow cache lib/cmap.c | 73 + lib/cmap.h

[ovs-dev] [PATCH v2 4/4] dpif-netdev: Split DFC cache and code optimization

2018-04-02 Thread yipeng wang
is hidden and performance improved significantly. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-netdev-perf.h | 2 +- lib/dpif-netdev.c | 275 - 2 files changed, 161 insertions(+), 116 deletions(-) diff --git a/li

[ovs-dev] [PATCH v2 2/4] dpif-netdev: Use way-associative cache

2018-04-02 Thread yipeng wang
From: Yipeng Wang <yipeng1.w...@intel.com> This commit use a way-associative cache rather than a simple single entry hash for DFC. Experiments show that this design generally has much higher hit rate. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-ne

[ovs-dev] [PATCH v2 3/4] dpif-netdev: use flow_table as indirect table

2018-04-02 Thread yipeng wang
From: Yipeng Wang <yipeng1.w...@intel.com> It is not memory efficient to store pointers in the distributor. In this commit, we store a 2 Byte index which is the index into flow_table. If the flow table is larger than 2^16, the rules store in the high index entry will not be cached in distr

[ovs-dev] [PATCH v2 1/4] dpif-netdev: Refactor datapath flow cache

2018-04-02 Thread yipeng wang
dev: Fix EMC key length EMC's key length is not initilized when insertion. Initialize the key length before insertion. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-netdev-perf.h | 1 + lib/dpif-netdev.c | 371 - 2

[ovs-dev] [PATCH 3/3] use flow_table as indirect table

2018-03-06 Thread yipeng wang
From: Yipeng Wang <yipeng1.w...@intel.com> It is not memory efficient to store pointers in the distributor. In this commit, we store a 2 Byte index which is the index into flow_table. If the flow table is larger than 2^16, the rules store in the high index entry will not be cached in distr

[ovs-dev] [PATCH 1/3] dpif-netdev: Refactor datapath flow cache

2018-03-06 Thread yipeng wang
3.884.3412.0% 20003.544.1717.8% 50003.013.8227.0% 1 2.753.6331.9% 2 2.643.5032.8% 5 2.603.3328.1% 10 2.593.2324.7% 50 2.593.1621.9% Signed-off-by: Jan Scheurich Signed-off-by: Yipeng Wang <

[ovs-dev] [PATCH 2/3] dpif-netdev: Use way-associative cache

2018-03-06 Thread yipeng wang
From: Yipeng Wang <yipeng1.w...@intel.com> This commit use a way-associative cache rather than a simple single entry hash for DFC. Experiments show that this design generally has much higher hit rate. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-ne

[ovs-dev] [PATCH 0/3] dpif-netdev: Combine CD and DFC patch for datapath refactor

2018-03-06 Thread yipeng wang
ase to master head. 2. The last commit is totally rewritten to use the flow_table as indirect table. The CD/DFC distributor will cache the index of flow_table entry. 3. Incorporate commit 2 into commit 1. (Bhanu's comment) 4. Change DFC to be always on in commit 1. (Bhanu's comment) Yipeng Wang

[ovs-dev] [RFC 4/4] dpif-netdev.c: Add indirect table

2018-01-18 Thread Yipeng Wang
. Another approach we plan to try is to use the flow_table as the indirect table. The indirect table size is a fixed constant for now. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-netdev.c | 69 +++ 1 file changed, 44 inse

[ovs-dev] [RFC 3/4] dpif-netdev: Use way-associative cache

2018-01-18 Thread Yipeng Wang
This commit uses a way-associative cache (CD) rather than a simple single entry hash table for DFC. Experiments show that this design generally has much higher hit rate. Since miss is much costly than hit, a CD-like structure that improves hit rate should help in general. Signed-off-by: Yipeng

[ovs-dev] [RFC 1/4] dpif-netdev: Refactor datapath flow cache

2018-01-18 Thread Yipeng Wang
From: Jan Scheurich This is a rebase of Jan's previous patch [PATCH] dpif-netdev: Refactor datapath flow cache https://mail.openvswitch.org/pipermail/ovs-dev/2017-November/341066.html So far the netdev datapath uses an 8K EMC to speed up the lookup of frequently used

[ovs-dev] [RFC 2/4] dpif-netdev: Fix EMC key length

2018-01-18 Thread Yipeng Wang
EMC's key length is not initialized when insertion. Initialize the key length before insertion. The code might be put in another place, for now I just put it in dfc_lookup. Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> --- lib/dpif-netdev.c | 3 ++- 1 file changed, 2 insertions

[ovs-dev] [PATCH v2 3/5] dpif-netdev: Add CD statistics

2017-10-31 Thread Yipeng Wang
This patch adds CD hit and miss statistics to dp_stat_type. PMD stats will show the total CD hit and miss counts. This patch depends on the first patch. CC: Darrell Ball CC: Jan Scheurich Signed-off-by: Yipeng Wang Signed-off-by: Antonio Fischetti Co-authored-by: Antonio Fischetti --- lib

[ovs-dev] [PATCH v2 1/5] dpif-netdev: Basic CD feature with scalar lookup.

2017-10-31 Thread Yipeng Wang
assifier has its own cuckoo distributor. [1] H. Lee and B. Lee, Approaches for improving tuple space search-based table lookup, ICTC '15 [2] B. Fan, D. G. Andersen, M. Kaminsky, and M. D. Mitzenmacher, Cuckoo Filter: Practically Better Than Bloom, CoNEXT '14 CC: Darrell Ball CC: Jan Scheurich Signed

[ovs-dev] [PATCH v2 4/5] dpif-netdev: Add adaptive CD mechanism

2017-10-31 Thread Yipeng Wang
seconds, and depending on this count, CD will be turned on or off during run-time. This patch depends on previous patches. CC: Darrell Ball CC: Jan Scheurich Signed-off-by: Yipeng Wang Signed-off-by: Antonio Fischetti Co-authored-by: Antonio Fischetti --- lib/dpif-netdev.c | 160

[ovs-dev] [PATCH v2 5/5] unit-test: Add a delay for CD initialization.

2017-10-31 Thread Yipeng Wang
This patch adds a delay during test 1215 for considering CD initialization time. CC: Darrell Ball CC: Jan Scheurich Signed-off-by: Yipeng Wang Signed-off-by: Antonio Fischetti Co-authored-by: Antonio Fischetti --- tests/ofproto-dpif.at | 3 +++ 1 file changed, 3 insertions(+) diff --git

[ovs-dev] [PATCH v2 0/5] dpif-netdev: Cuckoo-Distributor implementation

2017-10-31 Thread Yipeng Wang
to code. Fix build errors happens without AVX and DPDK library. Yipeng Wang (5): dpif-netdev: Basic CD feature with scalar lookup. dpif-netdev: Add AVX2 implementation for CD lookup. dpif-netdev: Add CD statistics dpif-netdev: Add adaptive CD mechanism unit-test: Add a delay fo

[ovs-dev] [PATCH v2 2/5] dpif-netdev: Add AVX2 implementation for CD lookup.

2017-10-31 Thread Yipeng Wang
This patch adds the AVX2 implementation during CD lookup. 16 entries of a bucket will be compared together with the lookup key. This patch depends on the first patch. CC: Darrell Ball CC: Jan Scheurich Signed-off-by: Yipeng Wang Signed-off-by: Antonio Fischetti Co-authored-by: Antonio