[dpdk-dev] [PATCH v4 10/10] MAINTAINERS: add librte_bpf related info

2018-04-13 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- MAINTAINERS | 4 1 file changed, 4 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index ed3251da7..db7fec362 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -964,6 +964,10 @@ Latency statistics M: Reshma Pattan F: lib/librte_latencystats/ +BPF

[dpdk-dev] [PATCH v3 0/2] eal/x86: Optimize rte_smp_mb() and create a new test case for it

2018-01-15 Thread Konstantin Ananyev
more comments to the test case Konstantin Ananyev (2): test/test: introduce new test-case for rte_smp_mb() eal/x86: Use lock-prefixed instructions to reduce cost of rte_smp_mb() .../common/include/arch/x86/rte_atomic.h | 44 +++- test/test/Makefile

[dpdk-dev] [PATCH v3 1/2] test/test: introduce new test-case for rte_smp_mb()

2018-01-15 Thread Konstantin Ananyev
Simple functional test for rte_smp_mb() implementations. Also when executed on a single lcore could be used as rough estimation how many cycles particular implementation of rte_smp_mb() might take. Signed-off-by: Konstantin Ananyev --- test/test/Makefile | 1 + test/test/test_barrier.c

[dpdk-dev] [PATCH v3 2/2] eal/x86: Use lock-prefixed instructions to reduce cost of rte_smp_mb()

2018-01-15 Thread Konstantin Ananyev
() implementation. On BDW 2.2 mb_autotest on single lcore reports 2X cycle reduction, i.e. from ~110 to ~55 cycles per operation. Signed-off-by: Konstantin Ananyev --- .../common/include/arch/x86/rte_atomic.h | 44 +- 1 file changed, 42 insertions(+), 2 deletions

[dpdk-dev] [PATCH v3 2/2] eal/x86: Use lock-prefixed instructions to reduce cost of rte_smp_mb()

2018-01-15 Thread Konstantin Ananyev
() implementation. On BDW 2.2 mb_autotest on single lcore reports 2X cycle reduction, i.e. from ~110 to ~55 cycles per operation. Signed-off-by: Konstantin Ananyev Acked-by: Bruce Richardson --- .../common/include/arch/x86/rte_atomic.h | 44 +- 1 file changed, 42

[dpdk-dev] [PATCH v1 0/5] add framework to load and execute BPF code

2018-03-09 Thread Konstantin Ananyev
continue with step 3) or exit TODO list: == - meson build - UT for it - implement proper validate() - allow JIT to generate bulk version - FreeBSD support Not currently supported features: = - cBPF - tail-pointer call - eBPF MAP - JIT for non X86_64 targ

[dpdk-dev] [PATCH v1 1/5] bpf: add BPF loading and execution framework

2018-03-09 Thread Konstantin Ananyev
- eBPF MAP - skb It also adds dependency on libelf. Signed-off-by: Konstantin Ananyev --- config/common_base | 5 + config/common_linuxapp | 1 + lib/Makefile | 2 + lib/librte_bpf/Makefile| 30 +++ lib/librte_bpf/bpf.c

[dpdk-dev] [PATCH v1 2/5] bpf: add JIT compilation for x86_64 ISA.

2018-03-09 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- lib/librte_bpf/Makefile |3 + lib/librte_bpf/bpf.c |4 + lib/librte_bpf/bpf_jit_x86.c | 1329 ++ 3 files changed, 1336 insertions(+) create mode 100644 lib/librte_bpf/bpf_jit_x86.c diff --git a

[dpdk-dev] [PATCH v1 3/5] bpf: introduce basic RX/TX BPF filters

2018-03-09 Thread Konstantin Ananyev
Introduce API to install BPF based filters on ethdev RX/TX path. Current implementation is pure SW one, based on ethdev RX/TX callback mechanism. Signed-off-by: Konstantin Ananyev --- lib/librte_bpf/Makefile| 2 + lib/librte_bpf/bpf_pkt.c | 524

[dpdk-dev] [PATCH v1 5/5] test: add few eBPF samples

2018-03-09 Thread Konstantin Ananyev
Add few simple eBPF programs as an example. Signed-off-by: Konstantin Ananyev --- test/bpf/dummy.c | 20 ++ test/bpf/mbuf.h | 556 +++ test/bpf/t1.c| 53 ++ test/bpf/t2.c| 30 +++ test/bpf/t3.c| 36 5 files changed

[dpdk-dev] [PATCH v1 4/5] testpmd: new commands to load/unload BPF filters

2018-03-09 Thread Konstantin Ananyev
Introduce new testpmd commands to load/unload RX/TX BPF-based filters. Signed-off-by: Konstantin Ananyev --- app/test-pmd/bpf_sup.h | 25 + app/test-pmd/cmdline.c | 146 + 2 files changed, 171 insertions(+) create mode 100644 app/test

[dpdk-dev] [PATCH v2 0/7] add framework to load and execute BPF code

2018-03-30 Thread Konstantin Ananyev
sd build - use new logging API - using rte_malloc() for cbi allocation - add extra logic into bpf_validate() Konstantin Ananyev (7): net: move BPF related definitions into librte_net bpf: add BPF loading and execution framework bpf: add more logic into bpf_validate() bpf: add JIT compil

[dpdk-dev] [PATCH v2 1/7] net: move BPF related definitions into librte_net

2018-03-30 Thread Konstantin Ananyev
Different linux distro may include partial definitions for eBPF while the linux kernel (or dpdk) may support given eBPF feature. To avoid issues define in one place all that is needed (and/or supported) by various DPDK components. Signed-off-by: Konstantin Ananyev --- drivers/net/tap/tap_bpf.h

[dpdk-dev] [PATCH v2 3/7] bpf: add more logic into bpf_validate()

2018-03-30 Thread Konstantin Ananyev
data. - memory boundaries violation Signed-off-by: Konstantin Ananyev --- lib/librte_bpf/bpf_validate.c | 1163 - 1 file changed, 1137 insertions(+), 26 deletions(-) diff --git a/lib/librte_bpf/bpf_validate.c b/lib/librte_bpf/bpf_validate.c index 1911e1381

[dpdk-dev] [PATCH v2 2/7] bpf: add BPF loading and execution framework

2018-03-30 Thread Konstantin Ananyev
- eBPF MAP - skb It also adds dependency on libelf. Signed-off-by: Konstantin Ananyev --- config/common_base | 5 + lib/Makefile | 2 + lib/librte_bpf/Makefile| 30 +++ lib/librte_bpf/bpf.c | 59 + lib/librte_bpf/bpf_exec.c

[dpdk-dev] [PATCH v2 5/7] bpf: introduce basic RX/TX BPF filters

2018-03-30 Thread Konstantin Ananyev
Introduce API to install BPF based filters on ethdev RX/TX path. Current implementation is pure SW one, based on ethdev RX/TX callback mechanism. Signed-off-by: Konstantin Ananyev --- lib/librte_bpf/Makefile| 2 + lib/librte_bpf/bpf_pkt.c | 607

[dpdk-dev] [PATCH v2 6/7] testpmd: new commands to load/unload BPF filters

2018-03-30 Thread Konstantin Ananyev
Introduce new testpmd commands to load/unload RX/TX BPF-based filters. Signed-off-by: Konstantin Ananyev --- app/test-pmd/bpf_sup.h | 25 app/test-pmd/cmdline.c | 146 +++ app/test-pmd/meson.build | 2 +- 3 files changed, 172

[dpdk-dev] [PATCH v2 7/7] test: add few eBPF samples

2018-03-30 Thread Konstantin Ananyev
Add few simple eBPF programs as an example. Signed-off-by: Konstantin Ananyev --- test/bpf/dummy.c | 20 ++ test/bpf/mbuf.h | 578 +++ test/bpf/t1.c| 52 + test/bpf/t2.c| 31 +++ test/bpf/t3.c| 36 5 files changed

[dpdk-dev] [PATCH v2 4/7] bpf: add JIT compilation for x86_64 ISA

2018-03-30 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- lib/librte_bpf/Makefile |3 + lib/librte_bpf/bpf.c |5 + lib/librte_bpf/bpf_jit_x86.c | 1329 ++ lib/librte_bpf/meson.build |4 + 4 files changed, 1341 insertions(+) create mode 100644 lib

Re: [dpdk-dev] [PATCH v3 1/3] eal/x86: run-time dispatch over memcpy

2017-10-02 Thread Konstantin Ananyev
Hi Xiaoyun, Just to be a bit more specific about what I suggest - here is a draft patch below. It still needs more testing and probably polishing, but I suppose gives you an idea. Konstantin --- lib/librte_eal/bsdapp/eal/Makefile | 20 + lib/librte_eal/common/arch/x86/rte_memcpy

[dpdk-dev] [PATCH 2/2] eal/x86: Use lock-prefixed instructions to reduce cost of rte_smp_mb()

2017-12-01 Thread Konstantin Ananyev
() implementation. On BDW 2.2 mb_autotest on single lcore reports 2X cycle reduction, i.e. from ~110 to ~55 cycles per operation. Signed-off-by: Konstantin Ananyev --- .../common/include/arch/x86/rte_atomic.h | 45 +- 1 file changed, 43 insertions(+), 2 deletions

[dpdk-dev] [PATCH 1/2] test/test: introduce new test-case for rte_smp_mb()

2017-12-01 Thread Konstantin Ananyev
Simple functional test for rte_smp_mb() implementations. Also when executed on a single lcore could be used as rough estimation how many cycles particular implementation of rte_smp_mb() might take. Signed-off-by: Konstantin Ananyev --- test/test/Makefile | 1 + test/test/test_mb.c | 278

[dpdk-dev] [RFC PATCH 1/3] ethdev: introduce eth_queue_local

2017-12-01 Thread Konstantin Ananyev
wipe out all installed callbacks for that port. Signed-off-by: Konstantin Ananyev --- lib/librte_ether/rte_ethdev.c | 228 +- lib/librte_ether/rte_ethdev.h | 85 +++- 2 files changed, 216 insertions(+), 97 deletions(-) diff --git a/lib

[dpdk-dev] [RFC PATCH 0/3] *** SUBJECT HERE ***

2017-12-01 Thread Konstantin Ananyev
ividual callback basis. In that case it would be up to callback writer/installer to decide does he/she need a removable at runtime callback or not. Though in that case, each installed callback might introduce extra synchronization overhead and slowdown. Konstantin Ananyev (3): ethdev: introduc

[dpdk-dev] [RFC PATCH 3/3] doc: ethdev ABI change deprecation notice

2017-12-01 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- doc/guides/rel_notes/deprecation.rst | 5 + 1 file changed, 5 insertions(+) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 13e85432f..038b55fd5 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc

[dpdk-dev] [RFC PATCH 2/3] ethdev: make it safe to remove rx/tx callback at runtime

2017-12-01 Thread Konstantin Ananyev
automatically free the callback handle and the user can safely release any associated with the removed callback resources. Signed-off-by: Konstantin Ananyev --- lib/librte_ether/rte_ethdev.c | 180 +++--- lib/librte_ether/rte_ethdev.h | 127 ++--- 2

[dpdk-dev] [RFC PATCH 0/3] ethdev: few changes in rte_ethdev layer

2017-12-01 Thread Konstantin Ananyev
ividual callback basis. In that case it would be up to callback writer/installer to decide does he/she need a removable at runtime callback or not. Though in that case, each installed callback might introduce extra synchronization overhead and slowdown. Konstantin Ananyev (3): ethdev: introduc

[dpdk-dev] [RFC PATCH 0/5] add framework to load and execute BPF code

2018-03-07 Thread Konstantin Ananyev
list: = - meson build - UT for it - implement proper validate() - allow JIT to generate bulk version Not currently supported features: ========= - cBPF - tail-pointer call - eBPF MAP - skb Konstantin Ananyev (5): bpf: add BPF loading and execution framework bpf: add

[dpdk-dev] [RFC PATCH 1/5] bpf: add BPF loading and execution framework

2018-03-07 Thread Konstantin Ananyev
librte_bpf provides a framework to load and execute eBPF bytecode inside user-space dpdk based applications. Not currently supported features: - JIT - cBPF - tail-pointer call - eBPF MAP - skb Signed-off-by: Konstantin Ananyev --- config/common_base | 5 + config

[dpdk-dev] [RFC PATCH 4/5] testpmd: new commands to load/unload BPF filters

2018-03-07 Thread Konstantin Ananyev
Introduce new testpmd commands to load/unload RX/TX BPF-based filters. Signed-off-by: Konstantin Ananyev --- app/test-pmd/cmdline.c | 144 + 1 file changed, 144 insertions(+) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index

[dpdk-dev] [RFC PATCH 3/5] bpf: introduce basic RX/TX BPF filters

2018-03-07 Thread Konstantin Ananyev
Introduce API to install BPF based filters on ethdev RX/TX path. Current implementation is pure SW one, based on ethdev RX/TX callback mechanism. Signed-off-by: Konstantin Ananyev --- lib/librte_bpf/Makefile| 2 + lib/librte_bpf/bpf_pkt.c | 524

[dpdk-dev] [RFC PATCH 2/5] bpf: add JIT compilation for x86_64 ISA.

2018-03-07 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- lib/librte_bpf/Makefile |3 + lib/librte_bpf/bpf.c |4 + lib/librte_bpf/bpf_jit_x86.c | 1155 ++ 3 files changed, 1162 insertions(+) create mode 100644 lib/librte_bpf/bpf_jit_x86.c diff --git a

[dpdk-dev] [RFC PATCH 5/5] test: add few eBPF samples

2018-03-07 Thread Konstantin Ananyev
Add few simple eBPF programs as an example. Signed-off-by: Konstantin Ananyev --- test/bpf/dummy.c | 20 ++ test/bpf/mbuf.h | 556 +++ test/bpf/t1.c| 54 ++ test/bpf/t2.c| 31 4 files changed, 661 insertions(+) create

[dpdk-dev] [PATCH v2 2/2] eal/x86: Use lock-prefixed instructions to reduce cost of rte_smp_mb()

2017-12-18 Thread Konstantin Ananyev
() implementation. On BDW 2.2 mb_autotest on single lcore reports 2X cycle reduction, i.e. from ~110 to ~55 cycles per operation. Signed-off-by: Konstantin Ananyev --- .../common/include/arch/x86/rte_atomic.h | 44 +- 1 file changed, 42 insertions(+), 2 deletions

[dpdk-dev] [PATCH v2 1/2] test/test: introduce new test-case for rte_smp_mb()

2017-12-18 Thread Konstantin Ananyev
Simple functional test for rte_smp_mb() implementations. Also when executed on a single lcore could be used as rough estimation how many cycles particular implementation of rte_smp_mb() might take. Signed-off-by: Konstantin Ananyev --- test/test/Makefile | 1 + test/test/test_mb.c | 315

[dpdk-dev] [PATCH v2 0/2] eal/x86: Optimize rte_smp_mb() and create a new test case for it

2017-12-18 Thread Konstantin Ananyev
v2 changes: Address Bruce code-review comments: - get rid of macros to simplify the code - add more comments to the test case Konstantin Ananyev (2): test/test: introduce new test-case for rte_smp_mb() eal/x86: Use lock-prefixed instructions to reduce cost of rte_smp_mb() .../common

[dpdk-dev] [PATCH] ixgbe: fix missed packet types.

2016-06-15 Thread Konstantin Ananyev
ixgbe PMD RX function(s) miss pacjet types that are: - correctly recognised by the underlying HW. - marked as supported by ixgbe_dev_supported_ptypes_get(). Fixes: 9586ebd358d5 ("ixgbe: replace some offload flags with packet type") Signed-off-by: Konstantin Ananyev --- drivers

[dpdk-dev] [PATCH] MAINTAINERS: claim IP fragmentation and ACL

2015-02-06 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 9a63714..e5abe7d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -226,6 +226,7 @@ Network headers F: lib/librte_net/ IP fragmentation & reassembl

[dpdk-dev] [PATCH 2/3] doc: ACL - add description for different classification methods

2015-02-18 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- doc/guides/prog_guide/packet_classif_access_ctrl.rst | 16 1 file changed, 16 insertions(+) diff --git a/doc/guides/prog_guide/packet_classif_access_ctrl.rst b/doc/guides/prog_guide/packet_classif_access_ctrl.rst index e018c68..d2adbff

[dpdk-dev] [PATCH 1/3] doc: Add restrictions for ACL rule fields

2015-02-18 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- doc/guides/prog_guide/packet_classif_access_ctrl.rst | 17 - 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/doc/guides/prog_guide/packet_classif_access_ctrl.rst b/doc/guides/prog_guide/packet_classif_access_ctrl.rst index

[dpdk-dev] [PATCH 0/3] doc: ACL - add description for new features.

2015-02-18 Thread Konstantin Ananyev
Konstantin Ananyev (3): doc: Add restrictions for ACL rule fields doc: ACL - add description for different classification methods doc: ACL - add description for max_size build parameter .../prog_guide/packet_classif_access_ctrl.rst | 83 -- 1 file changed, 78

[dpdk-dev] [PATCH 3/3] doc: ACL - add description for max_size build parameter

2015-02-18 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- .../prog_guide/packet_classif_access_ctrl.rst | 52 +- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/doc/guides/prog_guide/packet_classif_access_ctrl.rst b/doc/guides/prog_guide/packet_classif_access_ctrl.rst index

[dpdk-dev] [PATCH] ACL: use setjmp/longjmp to handle memory allocation failure at build phase

2015-02-19 Thread Konstantin Ananyev
process, made changes to handle all such failures in one place. Note, that all that memory for temporary structures is freed at one go at the end of build phase. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl_bld.c | 42 +- lib/librte_acl/tb_mem.c

[dpdk-dev] [PATCH v2 00/17] ACL: New AVX2 classify method and several other enhancements.

2015-01-12 Thread Konstantin Ananyev
to decide about space/performance trade-off (faster classify() vs less space for RT internal structures) for each given set of rules. Konstantin Ananyev (17): fix fix compilation issues with RTE_LIBRTE_ACL_STANDALONE=y app/test: few small fixes fot test_acl.c librte_acl: make data_indexes long en

[dpdk-dev] [PATCH v2 03/17] librte_acl: make data_indexes long enough to survive idle transitions.

2015-01-12 Thread Konstantin Ananyev
Make data_indexes long enough to survive idle transitions. That allows to simplify match processing code. Also fix incorrect size calculations for data indexes. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl_bld.c | 5 +++-- lib/librte_acl/acl_run.h | 4 2 files changed, 3

[dpdk-dev] [PATCH v2 01/17] fix fix compilation issues with RTE_LIBRTE_ACL_STANDALONE=y

2015-01-12 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- lib/librte_acl/rte_acl_osdep_alone.h | 12 1 file changed, 12 insertions(+) diff --git a/lib/librte_acl/rte_acl_osdep_alone.h b/lib/librte_acl/rte_acl_osdep_alone.h index a84b6f9..2a99860 100644 --- a/lib/librte_acl/rte_acl_osdep_alone.h +++ b

[dpdk-dev] [PATCH v2 14/17] libter_acl: move lo/hi dwords shuffle out from calc_addr

2015-01-12 Thread Konstantin Ananyev
Reorganise SSE code-path a bit by moving lo/hi dwords shuffle out from calc_addr(). That allows to make calc_addr() for SSE and AVX2 practically identical and opens opportunity for further code deduplication. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl_run_sse.h | 38

[dpdk-dev] [PATCH v2 05/17] librte_acl: fix a bug at build phase that can cause matches beeing overwirtten.

2015-01-12 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl_bld.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_acl/acl_bld.c b/lib/librte_acl/acl_bld.c index 8bf4a54..22f7934 100644 --- a/lib/librte_acl/acl_bld.c +++ b/lib/librte_acl/acl_bld.c @@ -1907,7 +1907,7

[dpdk-dev] [PATCH v2 06/17] librte_acl: introduce DFA nodes compression (group64) for identical entries.

2015-01-12 Thread Konstantin Ananyev
performance impact. >From what I've seen an average space savings: ~20%. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl.h| 12 ++- lib/librte_acl/acl_gen.c| 195 lib/librte_acl/acl_run_scalar.c | 38 lib/li

[dpdk-dev] [PATCH v2 04/17] librte_acl: remove build phase heuristsic with negative perfomance effect.

2015-01-12 Thread Konstantin Ananyev
. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl_bld.c | 277 +-- 1 file changed, 97 insertions(+), 180 deletions(-) diff --git a/lib/librte_acl/acl_bld.c b/lib/librte_acl/acl_bld.c index c5a674a..8bf4a54 100644 --- a/lib/librte_acl/acl_bld.c +++ b

[dpdk-dev] [PATCH v2 07/17] librte_acl: build/gen phase - simplify the way match nodes are allocated.

2015-01-12 Thread Konstantin Ananyev
allocated at the same stage as all others. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl.h | 3 +-- lib/librte_acl/acl_bld.c | 4 +-- lib/librte_acl/acl_gen.c | 69 ++-- 3 files changed, 34 insertions(+), 42 deletions(-) diff -

[dpdk-dev] [PATCH v2 08/17] librte_acl: make scalar RT code to be more similar to vector one.

2015-01-12 Thread Konstantin Ananyev
Make classify_scalar to behave in the same way as it's vector counterpart: move match check out of the inner loop, etc. That makes scalar and vector code look more identical. Plus it improves scalar code performance. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl_run_scalar.c

[dpdk-dev] [PATCH v2 02/17] app/test: few small fixes fot test_acl.c

2015-01-12 Thread Konstantin Ananyev
Make sure that test_acl would not ignore error conditions. Run classify() with all possible values. Signed-off-by: Konstantin Ananyev --- app/test/test_acl.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/test/test_acl.c b/app/test/test_acl.c index 356d620

[dpdk-dev] [PATCH v2 12/17] test-acl: add ability to manually select RT method.

2015-01-12 Thread Konstantin Ananyev
In test-acl replace command-line option "--scalar" with new one: "--alg=scalar|sse|avx2". Allows user manually select preferred classify() method. Signed-off-by: Konstantin Ananyev --- app/test-acl/main.c | 93 ++--- 1 file ch

[dpdk-dev] [PATCH v2 13/17] librte_acl: Remove search_sse_2 and relatives.

2015-01-12 Thread Konstantin Ananyev
Previous improvements made scalar method the fastest one for tiny bunch of packets (< 4). That allows us to remove specific vector code-path for small number of packets (search_sse_2) and always use scalar method for such cases. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl_run_a

[dpdk-dev] [PATCH v2 09/17] librte_acl: a bit of RT code deduplication.

2015-01-12 Thread Konstantin Ananyev
Move common check for input parameters up into rte_acl_classify_alg(). Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl_run_scalar.c | 4 lib/librte_acl/acl_run_sse.c| 4 lib/librte_acl/rte_acl.c| 19 --- 3 files changed, 12 insertions(+), 15

[dpdk-dev] [PATCH v2 16/17] libte_acl: introduce max_size into rte_acl_config.

2015-01-12 Thread Konstantin Ananyev
it. Signed-off-by: Konstantin Ananyev --- app/test-acl/main.c | 33 examples/l3fwd-acl/main.c | 3 +- lib/librte_acl/acl.h | 2 +- lib/librte_acl/acl_bld.c | 134 +- lib/librte_acl/acl_gen.c | 22 +--- lib/librte_acl/

[dpdk-dev] [PATCH v2 10/17] EAL: introduce rte_ymm and relatives in rte_common_vect.h.

2015-01-12 Thread Konstantin Ananyev
New data type to manipulate 256 bit AVX values. Rename field in the rte_xmm to keep common naming accross SSE/AVX fields. Signed-off-by: Konstantin Ananyev --- examples/l3fwd/main.c | 2 +- lib/librte_acl/acl_run_sse.c| 88

[dpdk-dev] [PATCH v2 17/17] libte_acl: remove unused macros.

2015-01-12 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl.h | 39 ++- lib/librte_acl/acl_run.h | 1 - 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/lib/librte_acl/acl.h b/lib/librte_acl/acl.h index 61b849a..e65e079 100644 --- a/lib

[dpdk-dev] [PATCH v2 11/17] librte_acl: add AVX2 as new rte_acl_classify() method

2015-01-12 Thread Konstantin Ananyev
On HSW boards when processing >= 16 packets per call, AVX2 method outperforms it's SSE counterpart by 10-25%, (depending on the ruleset). At runtime, if librte_acl was build with the compiler that supports AVX2, this method is selected as default one on HW that supports AVX2. Signed-

[dpdk-dev] [PATCH v2 15/17] libte_acl: make calc_addr a define to deduplicate the code.

2015-01-12 Thread Konstantin Ananyev
Vector code reorganisation/deduplication: To avoid maintaining two nearly identical implementations of calc_addr() (one for SSE, another for AVX2), replace it with a new macro that suits both SSE and AVX2 code-paths. Also remove no needed any more MM_* macros. Signed-off-by: Konstantin Ananyev

[dpdk-dev] [PATCHv2] headers: typeof -> __typeof__ to unbreak C++11 code

2015-03-06 Thread Konstantin Ananyev
T32_BIT) ^ When reading the GCC info pages, I get the feeling that __typeof__ is a better choice, and that indeed works when including the headers in C++ files (--std=c++11). There are some typeof()s left in C files, the patch only touches the public API. Signed-off-by: Simon Kagstrom Signe

[dpdk-dev] [PATCH] maintainers: claim IXGBE PMD

2015-03-10 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 07fdf5e..b18cf75 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -210,6 +210,8 @@ Intel e1000 F: lib/librte_pmd_e1000/ Intel ixgbe +M: Helin Zhang +M

[dpdk-dev] [PATCH] maintainers: claim EAL Intel x86

2015-03-11 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index ac46299..f10a457 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -106,6 +106,8 @@ IBM Power F: lib/librte_eal/common/include/arch/ppc_64/ Intel x86 +M: Bruce

[dpdk-dev] [PATCH] EAL: move rte_common_vect.h into arch/x86

2015-03-18 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- lib/librte_eal/common/Makefile | 1 - .../common/include/arch/x86/rte_common_vect.h | 128 + lib/librte_eal/common/include/rte_common_vect.h| 128 - 3 files changed, 128 insertions

[dpdk-dev] [PATCHv2] EAL: rename rte_common_vect.h into arch/x86/rte_vect.h

2015-03-18 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- examples/l3fwd/main.c | 2 +- lib/librte_acl/rte_acl_osdep.h | 2 +- lib/librte_eal/common/Makefile | 1 - .../common/include/arch/x86/rte_memcpy.h | 2 +- lib/librte_eal

[dpdk-dev] [PATCHv2] ixgbe: fix compilation issue when RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC is disabled

2015-03-20 Thread Konstantin Ananyev
v2: As per comments, reorder patch a bit, to avoid reintroducing extra ifdefs. Signed-off-by: Konstantin Ananyev --- lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 11 +++ lib/librte_pmd_ixgbe/ixgbe_rxtx.h | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/librte_pmd_ixgbe

[dpdk-dev] [PATCHv6 0/9] ethdev: add new API to retrieve RX/TX queue information

2015-10-22 Thread Konstantin Ananyev
. - added new fields into rte_eth_dev_info v6 chages: - respin to comply with latest dpdk.org - update release_notes Konstantin Ananyev (9): ethdev: add new API to retrieve RX/TX queue information i40e: add support for eth_(rxq|txq)_info_get and (rx|tx)_desc_lim ixgbe: add support for eth_(r

[dpdk-dev] [PATCHv6 1/9] ethdev: add new API to retrieve RX/TX queue information

2015-10-22 Thread Konstantin Ananyev
nfo struct rte_eth_txq_info new functions: rte_eth_rx_queue_info_get rte_eth_tx_queue_info_get into rte_etdev API. Left extra free space in the queue info structures, so extra fields could be added later without ABI breakage. Add new fields: rx_desc_lim tx_desc_lim into rte_eth_dev_info. Signed-off-by:

[dpdk-dev] [PATCHv6 6/9] cxgbe: add HW specific desc_lim data into dev_info

2015-10-22 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/cxgbe/cxgbe_ethdev.c | 9 + 1 file changed, 9 insertions(+) diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c index a8e057b..920e071 100644 --- a/drivers/net/cxgbe/cxgbe_ethdev.c +++ b/drivers/net/cxgbe

[dpdk-dev] [PATCHv6 4/9] e1000: add support for eth_(rxq|txq)_info_get and (rx|tx)_desc_lim

2015-10-22 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/e1000/e1000_ethdev.h | 36 drivers/net/e1000/em_ethdev.c| 14 drivers/net/e1000/em_rxtx.c | 71 +++- drivers/net/e1000/igb_ethdev.c | 22 + drivers/net/e1000

[dpdk-dev] [PATCHv6 8/9] testpmd: add new command to display RX/TX queue information

2015-10-22 Thread Konstantin Ananyev
From: "Ananyev, Konstantin" Signed-off-by: Konstantin Ananyev --- app/test-pmd/cmdline.c | 48 +++ app/test-pmd/config.c | 77 ++ app/test-pmd/testpmd.h | 2 ++ 3 files changed, 127 insertions(+) diff -

[dpdk-dev] [PATCHv6 9/9] doc: release notes update for queue_info_get()

2015-10-22 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- doc/guides/rel_notes/release_2_2.rst | 7 +++ 1 file changed, 7 insertions(+) diff --git a/doc/guides/rel_notes/release_2_2.rst b/doc/guides/rel_notes/release_2_2.rst index 4f75cff..33ea399 100644 --- a/doc/guides/rel_notes/release_2_2.rst +++ b/doc

[dpdk-dev] [PATCHv6 2/9] i40e: add support for eth_(rxq|txq)_info_get and (rx|tx)_desc_lim

2015-10-22 Thread Konstantin Ananyev
This patch assumes that the patch: i40e: fix wrong alignment for the number of HW descriptors already applied. Signed-off-by: Konstantin Ananyev --- drivers/net/i40e/i40e_ethdev.c| 14 ++ drivers/net/i40e/i40e_ethdev.h| 5 + drivers/net/i40e/i40e_ethdev_vf.c | 12

[dpdk-dev] [PATCHv6 5/9] fm10k: add HW specific desc_lim data into dev_info

2015-10-22 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/fm10k/fm10k_ethdev.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c index a69c990..9588dab 100644 --- a/drivers/net/fm10k/fm10k_ethdev.c +++ b/drivers/net/fm10k

[dpdk-dev] [PATCHv6 7/9] vmxnet3: add HW specific desc_lim data into dev_info

2015-10-22 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/vmxnet3/vmxnet3_ethdev.c | 12 1 file changed, 12 insertions(+) diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index a70be5c..3745b7d 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b

[dpdk-dev] [PATCHv6 3/9] ixgbe: add support for eth_(rxq|txq)_info_get and (rx|tx)_desc_lim

2015-10-22 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/ixgbe/ixgbe_ethdev.c | 23 ++ drivers/net/ixgbe/ixgbe_ethdev.h | 6 drivers/net/ixgbe/ixgbe_rxtx.c | 68 +--- drivers/net/ixgbe/ixgbe_rxtx.h | 21 + 4 files changed, 93

[dpdk-dev] [PATCHv7 2/9] i40e: add support for eth_(rxq|txq)_info_get and (rx|tx)_desc_lim

2015-10-27 Thread Konstantin Ananyev
This patch assumes that the patch: i40e: fix wrong alignment for the number of HW descriptors already applied. Signed-off-by: Konstantin Ananyev --- drivers/net/i40e/i40e_ethdev.c| 14 ++ drivers/net/i40e/i40e_ethdev.h| 5 + drivers/net/i40e/i40e_ethdev_vf.c | 12

[dpdk-dev] [PATCHv7 0/9] ethdev: add new API to retrieve RX/TX queue information

2015-10-27 Thread Konstantin Ananyev
. - added new fields into rte_eth_dev_info v6 chages: - respin to comply with latest dpdk.org - update release_notes, section "New Features" v7 changes: - update release notes, sections: "API Changes", "ABI Changes" Konstantin Ananyev (9): ethdev: add new API to re

[dpdk-dev] [PATCHv7 8/9] testpmd: add new command to display RX/TX queue information

2015-10-27 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- app/test-pmd/cmdline.c | 48 +++ app/test-pmd/config.c | 77 ++ app/test-pmd/testpmd.h | 2 ++ 3 files changed, 127 insertions(+) diff --git a/app/test-pmd/cmdline.c b/app/test

[dpdk-dev] [PATCHv7 9/9] doc: release notes update for queue_info_get() and (rx|tx)_desc_limit

2015-10-27 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- doc/guides/rel_notes/release_2_2.rst | 13 + 1 file changed, 13 insertions(+) diff --git a/doc/guides/rel_notes/release_2_2.rst b/doc/guides/rel_notes/release_2_2.rst index de6916e..aff6306 100644 --- a/doc/guides/rel_notes/release_2_2.rst

[dpdk-dev] [PATCHv7 1/9] ethdev: add new API to retrieve RX/TX queue information

2015-10-27 Thread Konstantin Ananyev
: rte_eth_rx_queue_info_get rte_eth_tx_queue_info_get into rte_etdev API. Left extra free space in the queue info structures, so extra fields could be added later without ABI breakage. Add new fields: rx_desc_lim tx_desc_lim into rte_eth_dev_info. Signed-off-by: Konstantin Ananyev --- lib/librte_ether

[dpdk-dev] [PATCHv7 6/9] cxgbe: add HW specific desc_lim data into dev_info

2015-10-27 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/cxgbe/cxgbe_ethdev.c | 9 + 1 file changed, 9 insertions(+) diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c index a8e057b..920e071 100644 --- a/drivers/net/cxgbe/cxgbe_ethdev.c +++ b/drivers/net/cxgbe

[dpdk-dev] [PATCHv7 5/9] fm10k: add HW specific desc_lim data into dev_info

2015-10-27 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/fm10k/fm10k_ethdev.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c index a69c990..9588dab 100644 --- a/drivers/net/fm10k/fm10k_ethdev.c +++ b/drivers/net/fm10k

[dpdk-dev] [PATCHv7 7/9] vmxnet3: add HW specific desc_lim data into dev_info

2015-10-27 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/vmxnet3/vmxnet3_ethdev.c | 12 1 file changed, 12 insertions(+) diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index a70be5c..3745b7d 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b

[dpdk-dev] [PATCHv7 4/9] e1000: add support for eth_(rxq|txq)_info_get and (rx|tx)_desc_lim

2015-10-27 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/e1000/e1000_ethdev.h | 36 drivers/net/e1000/em_ethdev.c| 14 drivers/net/e1000/em_rxtx.c | 71 +++- drivers/net/e1000/igb_ethdev.c | 22 + drivers/net/e1000

[dpdk-dev] [PATCHv7 3/9] ixgbe: add support for eth_(rxq|txq)_info_get and (rx|tx)_desc_lim

2015-10-27 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- drivers/net/ixgbe/ixgbe_ethdev.c | 23 ++ drivers/net/ixgbe/ixgbe_ethdev.h | 6 drivers/net/ixgbe/ixgbe_rxtx.c | 68 +--- drivers/net/ixgbe/ixgbe_rxtx.h | 21 + 4 files changed, 93

[dpdk-dev] [PATCH v4] ixgbe_pmd: enforce RS bit on every EOP descriptor for devices newer than 82598

2015-09-11 Thread Konstantin Ananyev
descriptor queue (40 descriptors). With that approach I also see a slight performance drop but it is much less then with your approach: with the same conditions it can do 14.2 Mpps over 1 port. Thanks Konstantin Signed-off-by: Konstantin Ananyev --- drivers/net/ixgbe/ixgbe_rxtx.c | 25 +

[dpdk-dev] [PATCH 1/3] ACL: fix a problem in acl_merge_trie

2015-05-22 Thread Konstantin Ananyev
t is not needed. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl_bld.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/librte_acl/acl_bld.c b/lib/librte_acl/acl_bld.c index a406737..92a85df 100644 --- a/lib/librte_acl/acl_bld.c +++ b/lib/librte_acl/acl_bld.c @@

[dpdk-dev] [PATCH 2/3] ACL: add new test case for ranges build

2015-05-22 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- app/test/test_acl.c | 147 ++-- 1 file changed, 143 insertions(+), 4 deletions(-) diff --git a/app/test/test_acl.c b/app/test/test_acl.c index 7119ad3..6a032f9 100644 --- a/app/test/test_acl.c +++ b/app/test

[dpdk-dev] [PATCH 3/3] ACL: remove subtree_id calculations at build stage

2015-05-22 Thread Konstantin Ananyev
As now subtree_id is not used acl_merge_trie() any more, there is no point to calculate and maintain that information. Signed-off-by: Konstantin Ananyev --- lib/librte_acl/acl.h | 7 --- lib/librte_acl/acl_bld.c | 119 +-- 2 files changed, 12

[dpdk-dev] [PATCH 0/3] ACL: Fix bug in acl_merge_trie() and add a new test-case for it to the UT

2015-05-22 Thread Konstantin Ananyev
ACL: fix a problem in acl_merge_trie ACL: add new test case for ranges build ACL: remove subtree_id calculations at build stage app/test/test_acl.c | 147 +-- lib/librte_acl/acl.h | 7 --- lib/librte_acl/acl_bld.c | 121 --

[dpdk-dev] [PATCHv2] mempool: fix pages computation to determine number of objects

2015-05-27 Thread Konstantin Ananyev
checks subsequent pages only when several are required per object. Signed-off-by: Konstantin Ananyev --- lib/librte_mempool/rte_mempool.c | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index

[dpdk-dev] [PATCHv3] mempool: fix pages computation to determine number of objects

2015-05-27 Thread Konstantin Ananyev
drops the first one otherwise. This commit checks subsequent pages only when several are required per object. Signed-off-by: Konstantin Ananyev --- lib/librte_mempool/rte_mempool.c | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.c b/lib

[dpdk-dev] [PATCH] app/testpmd: add 'show (rxq|txq)' command description into UG and cmdline help

2015-11-02 Thread Konstantin Ananyev
Signed-off-by: Konstantin Ananyev --- app/test-pmd/cmdline.c | 3 +++ doc/guides/testpmd_app_ug/testpmd_funcs.rst | 7 +++ 2 files changed, 10 insertions(+) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 0afdc96..ae9be81 100644 --- a/app/test-pmd

[dpdk-dev] [PATCHv5 2/2] ixgbe: fix TX hang when RS distance exceeds HW limit

2015-11-09 Thread Konstantin Ananyev
up to 4%). ixgbe simple TX path is unaffected by that patch. Reported-by: Vlad Zolotarov Signed-off-by: Konstantin Ananyev --- drivers/net/ixgbe/ixgbe_rxtx.c | 32 +++- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/d

[dpdk-dev] [PATCHv5 1/2] testpmd: add ability to split outgoing packets

2015-11-09 Thread Konstantin Ananyev
ment is controlled by 'set txpkts' command. Split policy is controlled by 'set txsplit' command. Possible values are: on | off | rand. Tha allows to increase test coverage for TX PMD codepaths. Signed-off-by: Konstantin Ananyev --- app/test-pmd/cmdline.c |

[dpdk-dev] [PATCHv5 0/2] ixgbe: fix TX hang when RS distance exceeds HW limit

2015-11-09 Thread Konstantin Ananyev
First patch contains changes in testpmd that allows to reproduce the issue. Second patch is the actual fix. Konstantin Ananyev (2): testpmd: add ability to split outgoing packets ixgbe: fix TX hang when RS distance exceeds HW limit app/test-pmd/cmdline.c | 57

[dpdk-dev] [PATCHv6 2/2] ixgbe: fix TX hang when RS distance exceeds HW limit

2015-11-09 Thread Konstantin Ananyev
es significant slowdown on the TX path: up to 25%). v6 changes: - fix pmd_perf_autotest - fix error description - update RN Reported-by: Vlad Zolotarov Signed-off-by: Konstantin Ananyev --- app/test/test_pmd_perf.c | 8 doc/guides/rel_notes/release_2_2.rst | 7

[dpdk-dev] [PATCHv6 0/2] ixgbe: fix TX hang when RS distance exceeds HW limit

2015-11-09 Thread Konstantin Ananyev
First patch contains changes in testpmd that allow to reproduce the issue. Second patch is the actual fix. Konstantin Ananyev (2): testpmd: add ability to split outgoing packets ixgbe: fix TX hang when RS distance exceeds HW limit app/test-pmd/cmdline.c | 57

<    5   6   7   8   9   10   11   12   13   14   >